Попасть в путаницу с числовыми первичными ключами

Я надеюсь, что кто-то может помочь. Я пытаюсь что-то настроить ниже, но я немного путаюсь. Насколько я понимаю, получение числовой переменной ID (например, автоинкремент) для первичного ключа более эффективно, чем использование составного первичного ключа из "естественных" переменных, которые определяют запись (особенно, если они являются символьными переменными (и т. Д.). так что если сопоставление UTF-8))

Как и в приведенном ниже примере, у каждого клиента есть список элементов (ITEMID), которые все являются членами категории (CATID), однако проблема заключается в том, что мне нужно, чтобы клиенты дополнительно могли назначать свои элементы в качестве компонента коллекции set (SETID), который является неидентифицирующей справочной таблицей - любой клиент может иметь несколько версий одного SETID.

Пункты, необходимые для набора, определяются CATID. Следовательно, в приведенном ниже примере, предназначенном для одного покупателя, он может выбрать назначение элемента 2 или 4 (или ни одного, ни обоих) для SET 001.

**ITEMS** 
ITEMID CATID 
1      04
2      02
3      01
4      02
5      05

**SETS**
SETID  CATID 
001    01
001    02
002    04
003    05

**CATEGORY**
CATID 
01
02
03
04
05

**Wanted result:**
ITEMID CATID SETNUMBER SETID 
1      04                   (customer chose not to assign to SET 002)
2      02    1         001
3      01    1         001
4      02    2         001
5      05              003

Спасибо заранее!

1 ответ

Решение

Из вашего описания кажется, что таблица "ITEM" может содержать столбец внешнего ключа "SETID" со значением NULLable.

Другие вопросы по тегам