Member 12982752 Ответов: 2

Многие ко многим отношениям-SQL


Привет,

У меня есть 2 таблицы, где в таблице 1 есть projectID (первичный ключ), имя проекта и т. д..
в таблице 2 есть ProjectID, BusinesscaseID и т. д., Но в этой таблице нет первичного ключа.

Я должен отфильтровать все идентификаторы бизнес-кейсов, которые связаны с идентификатором проекта в Таблице 1 (это называется активным проектом), теперь выньте все бизнес-кейсы активного проекта и найдите другие идентификаторы проектов, которые связаны с этими бизнес-кейсами.

BC (BCID, BCNAME, PROJECTID) - нет первичного ключа
AP (ProjectID, ProjectName) - идентификатор проекта является первичным ключом

1 проект имеет много бизнес-кейсов и 1 Бизнес-кейс имеет много проектов (многие ко многим отношениям)

Кто-нибудь может мне помочь с этим, пожалуйста?

Спасибо

Что я уже пробовал:

Я попытался использовать MS ACCESS, но не получил желаемых результатов.

0x01AA

Во-первых: многие ко многим и две таблицы не совпадают!
Во-вторых: стол без основного звука похож на плохой дизайн.

2 Ответов

Рейтинг:
2

Peter Leow

У здания должен быть хороший фундамент, иначе оно рискует рухнуть. При разработке программного обеспечения я сравниваю компонент базы данных с фундаментом здания.
Вы должны правильно спроектировать базу данных, иначе вы столкнетесь со многими трудностями, такими как эта, в последующей разработке.
Во-первых, чтобы установить связь "многие ко многим" между 2 таблицами, вам нужна третья таблица для ее брокера. Например,

table1                      table3                       table2
projectID(primary key)+---< projectID(primary key)      bizcaseName
projectName                 bizcaseID(primary key) >---+bizcaseID (primary key)
otherfields                                             otherfields
Во-вторых, каждая таблица должна иметь первичный ключ, для таблицы 3 эти 2 поля являются составным первичным ключом.
Учить больше:
1. Введение в проектирование баз данных[^]
2. 1NF, 2NF, 3NF и BCNF в нормализации баз данных / учебник по СУБД | Studytonight[^]
Не двигайтесь вперед, пока не исправите дизайн базы данных.


0x01AA

Прямолинейное введение в суть дела. А 5.

Рейтинг:
1

RossMW

См. приведенную ниже статью о соединениях для sql server

Типы соединений T-SQL / содержимое T-SQL из SQL Server Pro[^]

Это описание кода, используемого при соединении таблиц и различных моделей отношений