Другой способ, чем сводная таблица - Увеличение - PullRequest
0 голосов
/ 18 февраля 2019

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

Начнем с самого начала.

При регистрации пользователя создается новая таблица GROUP.В таблице GROUP мы зарегистрировали user_id и group_id.Эта таблица разрешает / запрещает доступ к папкам.

Этот пользователь может добавлять в свою группу других пользователей (Тот же идентификатор группы).

Моя проблема:

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

Первая схема:

Вторая схема (Pivot)

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

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

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

Но учтите: у вас есть внешний ключ в вашей таблице folder, которыйссылается на идентификатор группы.К какой строке в вашей таблице user_group должна относиться эта ссылка?В этой таблице будет много строк для данного идентификатора группы.Внешний ключ должен ссылаться на PRIMARY KEY указанной таблицы.

0 голосов
/ 18 февраля 2019

Как представить отношения между пользователями и группами в вашей базе данных?

Ответ на этот вопрос зависит от того, как смоделированы отношения:

  • , если пользователь может принадлежать только к одной группе или каждая группа содержит только одного пользователя, тогда выиметь отношения 1-N;Вы можете сохранить информацию в виде дополнительного столбца в (соответственно) таблице user или таблице group

  • , если группа может содержать несколько пользователей, а пользователь может принадлежать нескольким группамтогда у вас есть отношения NM;правильный способ его представления - создать таблицу мостов (которую вы назвали сводной таблицей), в которой каждая запись хранит внешний ключ для моста и внешний ключ для пользовательской таблицы.

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