Почему в отношении один ко многим (1-N) всегда первичный ключ, одна сторона которого находится внутри N-стороны, мы можем сделать наоборот? - PullRequest
0 голосов
/ 08 декабря 2018

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

Например, у нас есть две таблицы User и Comment;в этих таблицах мы должны поместить первичный ключ User в таблицу Comment как внешний ключ.Можем ли мы сделать наоборот?

Например, я помещаю первичный ключ таблицы Comment в таблицу User как внешний ключ.

1 Ответ

0 голосов
/ 08 декабря 2018

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

Многие системы баз данных поддерживают «сложные» атрибуты такого рода, но не все, поэтому многое зависит от того, какую технологию вы используете.Если вашим программным обеспечением разрешены сложные типы, то методы доступа к ним могут быть более сложными, чем доступ к отдельным значениям атрибута.В реляционной базе данных реляционные операции обрабатывают атрибуты как отдельные значения, и поэтому при проектировании реляционной базы данных атрибут внешнего ключа, на который ссылаются, содержится в таблице Comment.

...