|
|
|
Таблица-связка таблиц пользователей и групп
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Есть 2 таблицы: 1. Пользователи create table "tUser" ( "id" integer not null, ... constraint "tUser_PK" primary key ("id") ) 2. Группы create table "tGroup" ( id integer not null, ... constraint "tGroup_PK" primary key ("id") ) Пользователи могут входить в разные группы, поэтому нужна еще таблица для их связки и однозначной идентификации. 3. Вхождение пользователей в группы create table "tUserInGroup" ( "id" integer not null, "user_id" integer not null, "group_id" integer not null, constraint "tUser_FK" foreign key ("user_id") references "tUser" ("id"), constraint "tGroup_FK" foreign key ("group_id") references "tGroup" ("id") ) Другие таблицы будут ссылатся на "tUserInGroup" ("id") и этот ключ будет определять пользователя из конкретной группы. Подскажите какой сделать первичный ключ в таблице "tUserInGroup" . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 09:10:10 |
|
||
|
Таблица-связка таблиц пользователей и групп
|
|||
|---|---|---|---|
|
#18+
Забыл написать поля "id" во всех таблицах автоинкрементные (генератор+триггер). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 09:17:54 |
|
||
|
Таблица-связка таблиц пользователей и групп
|
|||
|---|---|---|---|
|
#18+
авторДругие таблицы будут ссылатся на "tUserInGroup" ("id") и этот ключ будет определять пользователя из конкретной группы. Это еще как? пользователя определяет user_id. Я бы убрал поле id, а по полям user_id и group_id сделал бы PK, этим и получил бы уникальность комбинаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 09:25:05 |
|
||
|
Таблица-связка таблиц пользователей и групп
|
|||
|---|---|---|---|
|
#18+
2 Dik76 Пользователь может многократно входить в разные группы, и поле "tUserInGroup"."id" нужно для идетификации пользователя в конкретной группе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 09:30:24 |
|
||
|
Таблица-связка таблиц пользователей и групп
|
|||
|---|---|---|---|
|
#18+
Придумываешь... user_id, group_id этого достаточно для определения входит пользователь в группу или нет. Обычная связь M:N. Если уж очень хочется, то оставь свой id, сделай по нему PK. А по user_id, group_id сделай уникальный индекс. ИМХО ни к чему это.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 09:36:53 |
|
||
|
Таблица-связка таблиц пользователей и групп
|
|||
|---|---|---|---|
|
#18+
1. Один пользователь создается один раз (при создании пользователя о нем вводится много информации, а создается один раз чтобы не дублировать информацию о нем). 2. Создается каждый раз новая группа в которую могут входить несколько пользователей (могут быть новые, а могут и раньше быть введены). 3. При добавлении нового пользователя проверяется не был ли он раньше введен. Если был, то в таблицу связку "tUserInGroup" записывается его "id" , а если нет то создается новый пользователь, и в таблицу связку "tUserInGroup" записывается его "id" . В каждой новой группе у пользователя новые свойства (определяются внешними таблицами по внешним ключам на поле "tUserInGroup"."id" ). Варианты первичного ключа (ПК) для таблицы "tUserInGroup" : 1. Отдельно ПК для ("id") и ("user_id","group_id") . Но разве так можно? 2. ПК для ("id") , а для ("user_id","group_id") - UNIQUE . 3. ПК для ("user_id","group_id") а для ("id") - UNIQUE . Какой из вариантов правильный? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 10:08:53 |
|
||
|
Таблица-связка таблиц пользователей и групп
|
|||
|---|---|---|---|
|
#18+
Какой из вариантов правильный? Первый невозможен. Второй правильный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 10:19:16 |
|
||
|
Таблица-связка таблиц пользователей и групп
|
|||
|---|---|---|---|
|
#18+
В каждой новой группе у пользователя новые свойства (определяются внешними таблицами по внешним ключам на поле "tUserInGroup"."id"). Подробнее про это можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 10:21:52 |
|
||
|
Таблица-связка таблиц пользователей и групп
|
|||
|---|---|---|---|
|
#18+
2 Dik76 Подробнее: Наверное я не правильно выразился на счет новых свойств пользователя. Скорее это не свойства а действия. Т.е. группы пользователей создаются для продаж. Новая группа - новая продажа. Пользователь - это покупатель. В каждой продаже каждый пользователь покупает новые товары, на покупки новые скидки и т.д. Группа объединяет пользователей некоторыми признаками, например количество человек (взрослых или детей) в группе. Количество человек в группе может быть больше количества пользователей (например не у всех пользователей в группе могут быть паспортные данные и один пользователь оформляется за всех). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 10:38:03 |
|
||
|
Таблица-связка таблиц пользователей и групп
|
|||
|---|---|---|---|
|
#18+
Я ошибся, не продажи а покупки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 10:40:59 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=456&tid=1578009]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
66ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 346ms |

| 0 / 0 |
