#sql #sql-server #database-design #many-to-many #create-table
#sql #sql-сервер #database-design #многие ко многим #создать таблицу
Вопрос:
У меня возникла ситуация при проектировании базы данных, простая проблема, но нужны рабочие предложения
Мои таблицы базы данных:
- Таблицы.
- Табличные таблицы.
Aees
может отображаться / содержать одну или несколько записей таблицыBees
или также может быть без каких-либоBees
Aees
также может отображаться с одной или несколькими записямиAees
самой таблицы
Здесь обычные отношения / иерархия первичного ключа и внешнего ключа не решают цели, а также беспокоятся о том, что иерархия родительских / дочерних элементов может привести к образованию цикла между таблицами и может привести к дублированию записей при различных объединениях.
Требуется лучшее сопоставление таблиц для вышеупомянутых таблиц (a, b), которое удовлетворит 1 и 2 баллам.
Итак, чтобы избежать такой ситуации, как лучше использовать взаимосвязь / иерархию таблиц?
Используемая база данных: SQL Server
Спасибо, что поделились своими знаниями.
Комментарии:
1. Что вы пробовали до сих пор? Где вы застряли? Почему бы не использовать таблицу отношений?
2. Прямо сейчас я анализирую лучший подход.
3. «Лучше» каким образом? Пожалуйста, добавьте некоторые пояснения к вашему вопросу, отредактировав его
4. Нет проблем, я нашел рабочее решение, спасибо за ваше время
Ответ №1:
Кажется, вы описываете отношения «многие ко многим». Если это так, вы должны создать третью таблицу для хранения этой связи, например:
create table a (
a_id int primary key,
...
);
create table b (
b_id int primary key,
...
);
create table ab (
a_id int references a(a_id),
b_id int references b(b_id),
primary key (a_id, b_id)
)
Каждый кортеж a / b хранится в отдельной строке в таблице bridge ab
.
Комментарии:
1. Спасибо, приятель, за ваши предложения.