Соглашение о присвоении имен объединяющей таблицы SQL

Так же, как резюме в стороне, хотя на вопрос ответили очень хорошо, нужно отметить это, если мы рассматриваем это как a:

универсальный вопрос о SQL

тогда реализация SQL довольно проста, поскольку SQL '99 позволяет линейную рекурсию в спецификации (хотя я полагаю, что никакие RDBMSs не реализуют стандарт полностью), через WITH RECURSIVE оператор. Таким образом с теоретической точки зрения мы можем сделать это прямо сейчас.

61
задан Josh Close 19 November 2009 в 16:14
поделиться

12 ответов

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

Это правильно (IMO) множественное число, а не UsersRoles , что звучит странно.

31
ответ дан 24 November 2019 в 17:15
поделиться

Действительно, используйте псевдонимы таблиц и выберите столбцы с одинаковыми именами отдельно с помощью селектора AS.

например, SELECT user.id AS user_id

-1
ответ дан 24 November 2019 в 17:15
поделиться

Вы можете украсть страницу у Microsoft и назвать ее UsersInRoles .

0
ответ дан 24 November 2019 в 17:15
поделиться

У меня есть соглашение, которое мне легко понять сразу:

User
Role
User2Role
1
ответ дан 24 November 2019 в 17:15
поделиться

У нас такая же структура, и мы вызываем таблицу ссылок UserRoles.

6
ответ дан 24 November 2019 в 17:15
поделиться
  • Имена таблиц всегда должны быть в единственном числе, так что позже вам не нужно будет выглядеть так: «Это Пользователь или Пользователи ? которые заканчиваются на S? и т. д. "(я бы изменил это сейчас, если бы вы только начали проект)
  • Обычное соглашение было бы следующим: Пользователь , Роль и таблица внешних ссылок : UserRole .
  • Самая важная таблица или та, которая существовала раньше, идет первой. Это особенно верно, если таблица 'role' не имеет реального использования вне разрешений пользователя. поэтому UserRole имеет гораздо больше смысла, чем RoleUser .
  • Я видел такие вещи, как User_X_Role или UserXRole , если вы например, дополнительная многословность
9
ответ дан 24 November 2019 в 17:15
поделиться

Я бы назвал таблицу ссылок так:

Remove_The_Surrogate_Primary_Key_From_The_Link_Table_Unless_You_Can_Prove_That_You_Really_Need_One
8
ответ дан 24 November 2019 в 17:15
поделиться

Мы всегда использовали имена двух таблиц, за которыми следовало слово «Ссылки». Итак, в вашем примере имя нашей таблицы будет «UsersRolesLinks».

0
ответ дан 24 November 2019 в 17:15
поделиться

Я всегда использовал что-то вроде: rel_user_roles или relUserRoles . Какая таблица идет первой, обычно зависит только от ее положения в модели данных.

2
ответ дан 24 November 2019 в 17:15
поделиться

Я бы предложил просто UsersRoles , так как это то, что он содержит.

21
ответ дан 24 November 2019 в 17:15
поделиться

Это соглашение на моем рабочем месте:

UsersXRoles
4
ответ дан 24 November 2019 в 17:15
поделиться

Я бы назвал таблицу пользователей User , таблицу ролей Role и таблицу соединений UserRoles .

Кстати, pk Идентификатор на самом деле не требуется в таблице соединения. Лучше объедините UserId и RoleId вместе с pk или просто uk (уникальный ключ), чтобы обеспечить уникальные отношения User - Role .

26
ответ дан 24 November 2019 в 17:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: