|
|
|
Правильно ли генерировать Primary Key на основе Sequence
|
|||
|---|---|---|---|
|
#18+
2 Kr_Yury >А где гарантия, что все используют в качестве клиента приложение, заполняющее ключевое поле? Можно так CREATE OR REPLACE TRIGGER orders_bi BEFORE INSERT ON orders REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN IF :NEW.order_id IS NULL THEN SELECT orders_seq.nextval INTO :NEW.order_id FROM DUAL; END IF; END; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 18:10 |
|
||
|
Правильно ли генерировать Primary Key на основе Sequence
|
|||
|---|---|---|---|
|
#18+
2 Работник Смешно даже немного. а где гарантия что оно вообще правильно тогда написано. Как позвольте спросить его тестировали. Что там еще забыли заполнить ))? Я в своём замечании имел ввиду не то, что приложение не заполняет ключевое поле, а то, что могут использоваться др. приложения - тот же SQL*Plus или др. утилиты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 18:25 |
|
||
|
Правильно ли генерировать Primary Key на основе Sequence
|
|||
|---|---|---|---|
|
#18+
2 Kr_Yury Если это делаеться через sqlplus, то ситуация не меняеться. Поле то not null должно быть. Выдаст им сервер ошибку. Разберуться лучше. А может для целей вставки существует отдельная процедура и т.д ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 18:42 |
|
||
|
Правильно ли генерировать Primary Key на основе Sequence
|
|||
|---|---|---|---|
|
#18+
Да что тут спорить, естественным ключ по определению быть не может. Причин много: 1. Естественный ключ может быть изменен внешними силами (постановлением ЦК КПСС :-) ). 2. Естественные ключи могут иметь одинаковое значение для разных объектов. 3. Автоматическая генерация естественного ключа затруднена и, чаще всего, требует вмешательства оператора. Мало? Еще веселуха когда в качестве ключа выбирается фасеточный ключ, особенно с ведущими нулями. Диапазон там ограничен :-) Суррогатный ключ - самый лучший вариант. Он последователен (автоинкрементен, пусть и с пропусками), легко генерится в автоматическом режиме, не зависит от оператора, фаз луны и постановлений ВЦСПС. Используется такой ключ не пользователем а системой, поэтому и показывать его необязательно. А для желающих идентифицировать обект каким либо собственным кодом не столь сложно привязать к суррогатному ключу любую информацию, но система будет работать только с суррогатным ключом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 20:44 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32160051&tid=1990575]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 528ms |

| 0 / 0 |
