Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

Необходимость наличия 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.033 c
6-1094388840
zep
2004-09-05 16:54
2004.11.14
IP адреса


14-1099128486
Vladimir Vorfolomeev
2004-10-30 13:28
2004.11.14
Требуются программисты


14-1098979399
JOnyto
2004-10-28 20:03
2004.11.14
Прервание выполнения процедуры до нажатия кнопки


3-1098039899
S@shka
2004-10-17 23:04
2004.11.14
100% загрузка проца


1-1099130123
Artemiy2004
2004-10-30 13:55
2004.11.14
Как скопировать небольшую часть картинки в новый битмап?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский