Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Необходимость наличия Primary Key   Найти похожие ветки 

 
Vemer ©   (2004-10-15 16:43) [0]

Здравствуйте.
Для отражения связей "многие к многим" использую классическую дополнительную таблицу (Own_ID(PK), ID1(FK), ID2(FK)). С таблицей работаю только через ХП. Есть Constraint на Unique ID1 + ID2.

Возникла мысль о ненадобности в этой структуре своего PK()т.к. уникальность пар и правильность значений обеспечивается Constraint и FK.

Свой PK по идее нужен только для удаления, но по набору ID1 + ID2 замечательно удаляется, просто 1 условие в Where добавляется и все.

Вроде никаких других "подводных камней" не вижу
Можно в такой таблице (< 1000 записей) жить без PK?


 
Reindeer Moss Eater ©   (2004-10-15 16:47) [1]

Сам по себе PK конечно же необязателен.
Но если у тебя уникальный ключ, то почему бы его не сделать первичным ключем?
Индекс-то все равно будет.


 
Vemer ©   (2004-10-15 16:52) [2]

Ура.. придумал. Надо эти 2 поля оставшихся PK объявить и не париться.. уникальность + быстрота поиска обеспечены ))


 
Johnmen ©   (2004-10-15 16:58) [3]

>Vemer ©   (15.10.04 16:52) [2]
>Ура.. придумал.

Да ладно... Это тебе RME подсказал...:)


 
Reindeer Moss Eater ©   (2004-10-15 16:59) [4]

Свой PK по идее нужен только для удаления, но по набору ID1 + ID2 замечательно удаляется, просто 1 условие в Where добавляется и все.

PK нужен не для удаления.
PK нужен не для редактирования.

PK нужен тогда, когда есть необходимость идентифицировать конкретную запись в таблице.

Вот пример таблицы-справочника прав пользователя
create table dic_user_rights(
ur_user_id  ....,
ur_function ...
);

То есть код юзера и код привилегии.
Нас интересует набор привилегий юзера и нам по барабану в каких конкретно записях находятся конкретные привилегии.
Первичный ключ здесь нафик не нужен.
Полный перечень привилегий пользователя получается выборкой по его ID.
Удаление привилегии - по коду самой привилегии.



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
14-1098805148
Сайбель Алексей
2004-10-26 19:39
2004.11.14
Клещ


3-1097846678
Maverick
2004-10-15 17:24
2004.11.14
BLOB поля


14-1098651361
Neus
2004-10-25 00:56
2004.11.14
Время


1-1099176911
Кто---то
2004-10-31 02:55
2004.11.14
Как в программе хранятся record ? В виде смещений, или чего то


14-1098964710
Denis
2004-10-28 15:58
2004.11.14
Компютер не грузится с загрузочной дискеты