|
|
|
| Возник вопрос по правилам именования внешних ключей.
Допустим, есть таблица users (пользователи).
Таблица пользователей имеет столбцы id_user, user_name.
Поскольку каждого пользователя нужно будет относить к одной из групп (администратор, модератор, пользователь), то решено создать дополнительную таблицу groups (группы). Эта таблица имеет два столбца: id_group, name_group. Значения в ней: admins, moders, members.
Таким образом, необходимо теперь добавить новый столбец в таблицу users со значением id_group из второй таблицы.
Вопрос: как следует именовать такой новый столбец в таблице users? С тем же именем, который имеется в таблице groups или это неважно (ведь FK для таблиц MyISAM не устанавливаются)?
Спасибо. | |
|
|
|
|
|
|
|
для: baston
(23.04.2010 в 12:20)
| | В таблицу users ничего добавлять не надо.
Ну если только очень сильно хотите, чтобы у каждого пользователя была некая базовая группа - одна и только одна. Хотя это и не отменит основное решение.
А так просто - не надо.
Нужна таблица связки из двух чужих ключей - как и практически для любой связи многие-ко-многим. | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2010 в 12:28)
| | куда уж мне успеть поперед Трианона :)))
кстати есть еще один плюс использования таблицы связи, обычно самая многочисленная группа это простые смертные юзеры, которых вообще можно не писать в таблицу, а применять к ним действия (привилегии) по-умолчанию | |
|
|
|
|
|
|
|
для: Valick
(23.04.2010 в 12:37)
| | Вы имеете в виду гостей? Так ведь есть гости, которые могут только читать, допустим, и есть зарегистрированные пользователи, которые помимо чтения могут еще и писАть. | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2010 в 12:28)
| | Может быть, я что-то недопонимаю...
Каждый пользователь должен входить в какую-то одну группу - админ, модератор или обычный пользователь.
Таким образом, таблица groups все-равно нужна.
Но если в таблицу users не будем добавлять новый столбец с id из groups, то придется создавать дополнительную таблицу-связку, как вы сказали. И в этой связке у нас будут два id: id_user и id_group.
И вот здесь я не понимаю, в чем преимущества такого подхода? | |
|
|
|
|
|
|
|
для: baston
(23.04.2010 в 12:53)
| | Это у Вас сейчас админ, модер и обычный пользователь.
Глазом не моргнете, как появятся помощники, враги, желтые штаны, малиновые штаны, эцилопы и прочая дифференцированная нечисть. | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2010 в 13:05)
| | Мысль понял! Спасибо. | |
|
|
|
|
|
|
|
для: baston
(23.04.2010 в 12:20)
| | Давайте я забегу немного вперёд...
если у вас один и тот же user может входить в ноль и более групп, то следует задуматься о третьей таблице, а уж как вы там поля эти обзомете - это по-барабану. | |
|
|
|