За или против id

1 отговора 237 прегледа
#1

За или против id

Във всяка таблица която правя неизменно присъства колона id (int not null auto_increment primary key; identity ; serial ).

Често има ситуации в които имаме да речем таблици table1 и table2 като за всеки ред от table2 имаме колона table1_id, която е ункална.

Любопитно ми е кое предпочитате и защо - задължителна колона id или както в случая, table1_id може да играе тази роля в table2 ?

Отговор
в отговор на kaпитaнчo #2

Re: За или против id

>Във всяка таблица която правя неизменно присъства колона id (int not null auto_increment primary key; identity ; serial ).
Ако с това искаш да кажеш, че ползваш изкуствени (синтетични) ключове за идентификация вместо естествени такива (напр. ЕГН, Данъчен номер, Осигурителен номер и т.н), то това е добър стил IMHO
>имаме да речем таблици table1 и table2 като за всеки ред от table2 имаме колона table1_id, която е ункална
Това е ненормализирана база. Ако все пак си решил (твоя е волята) да ползваш такава, не виждам причина да не ползваш същия ключ за двете таблици.
Когато ползваш референтни таблици (напр. много към много) за първичен ключ е най добре да ползваш двата форейна. Когато се заформи много сложен ключ (повече от два), аз си правя отделно изкуствен първичен и уникален по форейните

ПС
Изобщо отговора е : Зависи
Прилича на успешния брак. Има много правила за спазване, но няма гарантирана рецепта

Редактирано от NDeu на

Отговор