Мне было интересно, могу ли я перенести первичный ключ из одной таблицы в другую и сделать его многозначным в таблице THAT, чтобы затем ссылаться на него как составной внешний ключ в другой таблице.Первичный ключ, на который ссылается как многозначный внешний ключ?
В следующей ситуации: у меня есть таблица Services
, у каждого сервиса есть первичный ключ serviceCode
и назначенный ему serviceFee
.
Услуги используются в назначениях, до 5 услуг для назначения. Назначения формируют счета-фактуры, которые также нуждаются в оплате за услуги, чтобы рассчитать общую сумму.
До сих пор моя схема:
service
(serviceCode, описание, serviceFee)appointment
([appDate, clientNo, serviceCode] PK, roomNo)invoice
(invNo, invDate, totalFee , комментарий, статус, [appDate, clientNo, serviceCode] FK)
Возможно ли это? Хотя я полагаю, что мне нужно добавить serviceFee
в качестве части первичного ключа служб, чтобы я мог передать его на счет-фактуру, так как я не уверен, могу ли я отдельно передать serviceFee
только на счет-фактуру.
Другое решение, о котором я думаю в своей голове, превращает назначение в сложную связь, поскольку appDate является его единственным атрибутом, все остальное является ссылкой из других таблиц. Тогда я просто передал все, чтобы сделать счет.
Да, лучше всего было бы создать дополнительные таблицы для решения проблемы. Это единственный способ для меня иметь дело с многозначными атрибутами. – JCook