Зачем хранить отношения таблиц в другой таблице? - PullRequest
3 голосов
/ 16 декабря 2010

Я видел, как люди часто используют отдельную таблицу для хранения отношений между таблицами.

Пример, Таблица Company_companys состоит из двух столбцов: nodeid, который является идентификатором компании, и linkid, который является идентификатором компании другой компании.

Почему люди делают это, когда то же самое можно сделать с помощью дополнительного столбца в таблице Company? Это по соображениям производительности? или есть какая-то другая причина?

РЕДАКТИРОВАТЬ: Спасибо всем за ответы и примеры, теперь я понимаю, что для достижения Первой нормальной формы, когда необходимо отношение многие ко многим, необходима отдельная таблица для хранения нескольких ссылок. Размышляя над вышеупомянутым вопросом, я в значительной степени забыл концепцию отношений многих ко многим, поэтому я думал об этом с точки зрения отношений один ко многим:)

Ответы [ 3 ]

9 голосов
/ 16 декабря 2010

Это, вероятно, потому что оно представляет отношения MANY TO MANY . С подходом, который вы упоминаете, у вас есть только отношения ONE TO MANY .

Итак, в вашем примере, если ваши таблицы семантические означают представлять какую-либо компанию, возможно, относящуюся ко многим другим компаниям, вам нужна отдельная таблица для этого.

2 голосов
/ 16 декабря 2010

Дополнительная таблица «связь» необходима, если у вас есть отношение «многие ко многим»

1 голос
/ 16 декабря 2010

Это решение проблемы со связями «многие ко многим» ( .. ).Использование третьей таблицы с внешними ключами создает 2 отношения «один ко многим», поскольку отношение «многие ко многим» обычно является плохим дизайном базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...