Как мне создать эту таблицу ссылок? - PullRequest
1 голос
/ 07 мая 2010

Хорошо, ТАК, у меня есть пользовательская таблица, и я хочу определить группы пользователей вместе. Лучшее решение для этого - создать три таблицы базы данных следующим образом:

UserTable

user_id
user_name

UserGroupLink

group_id
member_id

GROUPINFO

group_id
group_name

Этот метод разделяет информацию об участнике и группе. Это просто мой способ мышления. Есть лучший способ сделать это? Кроме того, каково хорошее соглашение об именовании для таблиц, которые связывают две другие таблицы?

Ответы [ 6 ]

3 голосов
/ 07 мая 2010

Это зависит.

Если участник может принадлежать только к одной группе, то ваше решение излишне (и не оптимизировано должным образом). В этом случае будет достаточно избавиться от таблицы UserGroupLink и просто добавить столбец group_id в UserTable.

2 голосов
/ 07 мая 2010

Выглядит хорошо, я бы пошел с:

Group
-----
GroupID (PK)
Name
CreatedDate

GroupUser
---------
GroupUserID (PK)
GroupID (FK)
UserID (FK)
CreatedDate

User
----
UserID (PK)
Firstname
Lastname
CreatedDate
...
2 голосов
/ 07 мая 2010

Мне кажется, довольно стандартная ролевая модель пользователя. Это хорошо.

0 голосов
/ 19 августа 2011

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

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

Ваша сервировка стола соответствующая, ИМХО. Существуют различные соглашения об именах для объединяемой таблицы - Ruby on Rails использует оба имени таблицы, объединенные подчеркиванием, в алфавитном порядке: «group_member» в вашем случае.

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

Важно выбрать конвенцию и придерживаться ее.

Вот как бы я назвал эти таблицы (кстати, структура в порядке):

Users
-----
id
name

UserGroups
----------
user_id
group_id

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