Простая структура дизайна таблицы базы данных

#sql #sql-server #database-design #many-to-many #create-table

#sql #sql-сервер #database-design #многие ко многим #создать таблицу

Вопрос:

У меня возникла ситуация при проектировании базы данных, простая проблема, но нужны рабочие предложения

Мои таблицы базы данных:

  • Таблицы.
  • Табличные таблицы.
  1. Aees может отображаться / содержать одну или несколько записей таблицы Bees или также может быть без каких-либо Bees
  2. 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. Спасибо, приятель, за ваши предложения.