Я создаю систему базы данных и имею проблемы с дизайном одной из моих таблиц.Дизайн базы данных: альтернатива композитным клавишам?
В этой системе есть таблица пользователей, таблица объектов, таблица элементов и таблица затрат.
Уникальная запись в таблице затрат определяется пользователем, объектом, товаром и годом. Однако может быть несколько записей, которые имеют тот же год, если элемент отличается.
Иерархия: user-> object-> item-> year, несколько уникальных лет за элемент, несколько уникальных элементов для каждого объекта, несколько уникальных объектов для каждого пользователя, несколько уникальных пользователей.
Что было бы лучшим способом разработать таблицу затрат?
Я думаю о включении userid, objectid и itemid в качестве внешних ключей, а затем используя составной ключ, состоящий из userid, objecid, itemid и costyear. Я слышал, что составные клавиши - плохой дизайн, но я не уверен, как структурировать это, чтобы уйти от использования составного ключа. Как вы можете сказать, мои навыки построения базы данных немного ржавые.
Спасибо!
P.S. Если это имеет значение, это интербаза db.
+1 для составного ключа и для уникального ограничения! –