Два внешних ключа вместо основного устройства

На основании вашего описания звучит так, как будто вам просто нужно добавить параметр -Recurse в вашу команду

9
задан Peter Lang 21 May 2010 в 06:01
поделиться

8 ответов

28
ответ дан 4 December 2019 в 06:14
поделиться

да это называют составным первичным ключом

3
ответ дан 4 December 2019 в 06:14
поделиться

Можно создать первичный ключ на двух столбцах: нажмите на оба столбца в представлении разработчика>, нажимают на pk

Или, Вы могли добавить ограничение на уникальность данных на 2 столбца:

ALTER TABLE [dbo].[RepresentativeData] 
add CONSTRAINT [UK_Representative_repRecID_AppID] unique (repRecID,AppId)
go

Я предпочитаю составной первичный ключ, потому что он осуществляет это, значение действительно существует в других таблицах.

4
ответ дан 4 December 2019 в 06:14
поделиться

Как это:

create table stock
( item_id      references items(item_id)
, warehouse_id references warehouses(warehouse_id)
, quantity     number(12,2) not null
, constraint stock_pk primary key (item_id, warehouse_id)
);
6
ответ дан 4 December 2019 в 06:14
поделиться

Нет ничего неправильно с составным первичным ключом для этого but's, вероятно, легче в большинстве ситуаций создать единственный столбец первичного ключа так или иначе. Если у Вас не будет конкретных аппаратных ограничений, pk седло, вероятно, только улучшит производительность и легкий из maintainance.

Не забывайте полагать, что у Вас могут быть ситуации, которые не могут аккуратно соответствовать Вашей модели. Например, у Вас может быть запас, который Вы знаете, существует, но в настоящее время не знайте, какой склад это находится в, или в пути или еще не выделено или что бы то ни было. Или необходимо создать бизнес-правила, чтобы вместить это в составной первичный ключ или использовать столбец первичного ключа вместо этого.

1
ответ дан 4 December 2019 в 06:14
поделиться

Вы не должны создавать "неиспользованное" поле первичного ключа, но оно часто делает жизнь более простой. (Как Paul указывает T, у Вас были бы к указанному оба поля для удаления строки).

Я часто называю такие столбцы "PK", для создания их ограниченной утилиты очевидной.

0
ответ дан 4 December 2019 в 06:14
поделиться

Если Вы не делаете никакого вида запроса, для которого нужен он, Вам не нужен первичный ключ. Это делает это крошечным битом тяжелее для удаления записи однозначно, все же. Вы могли бы хотеть поместить ограничение на уникальность данных на item_id, warehouse_id, если Oracle позволяет это.

0
ответ дан 4 December 2019 в 06:14
поделиться

Как все сказал, можно создать основное устройство из 2 столбцов. Вы не должны создавать искусственный столбец автоприращения.

Кроме того, примите во внимание, что внешние ключи служат другой цели, чем первичные ключи. Таким образом, Вы не можете заменить первичный ключ 2 внешними ключами.

0
ответ дан 4 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: