Какое имя таблицы SQL для таблицы между «Users» и «UserTypes»? - PullRequest
1 голос
/ 23 мая 2010

У меня есть две таблицы в моей базе данных:

  • Пользователи: содержат информацию о пользователе
  • Типы пользователей: содержат имена типов пользователей (студент, преподаватель, специалист)Я не могу переименовать его в «Типы», так как у нас есть таблица с таким именем

отношение между пользователями и типами пользователей многие ко многим .. поэтому я создам таблицу с UserID (FK)с UserTypeID (FK), но я пытаюсь найти лучшее имя для этой таблицы ... какие-либо предложения, пожалуйста?

Ответы [ 6 ]

4 голосов
/ 23 мая 2010

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

Users_UserTypes

1 голос
/ 23 мая 2010

User, UserType (я называю каждую таблицу в единственном числе) и ... UserTypeMap

1 голос
/ 23 мая 2010

Другой подход (кроме Users_UserTypes) будет UserTypes_for_Users Это немного менее традиционный, но ИМХО более понятный

1 голос
/ 23 мая 2010

Есть ли у вас что-нибудь еще "type" в таблице UserTypes? Сколько там записей? Если их всего несколько, и они не содержат никаких дополнительных данных, то я просто денормализую эту таблицу и вообще не буду иметь отдельного столяра.

То есть:

Users:

  ID       |  First Name      |  Last Name
-----------+------------------+--------------------
 123       | John             | Smith
 456       | Jane             | Doe

UserTypes:

  UserID   |  Type
-----------+----------------
 123       | student
 123       | specialist
 456       | teacher

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

ИМО, не так уж много смысла денормализировать вещи до такой степени, что у вас все время объединяются 500 столов ...

1 голос
/ 23 мая 2010

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

0 голосов
/ 23 мая 2010

Мы используем соглашение об именовании Table1_x_Table2 для таблиц «многие ко многим».

Это проясняет ситуацию и указывает на характер перекрестных ссылок таблицы: Person_x_Company Package_x_Product User_x_UserType

Для таблиц самозависимости, таких как сотрудник-менеджер, у нас есть таблица Person_x_Person со столбцами «тип_отношения» и «приоритет», позволяющая нескольким менеджерам на сотрудника иметь первичного или вторичного менеджера.

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