С точки зрения логической модели, вам, вероятно, не нужен store_id для лота (как он поступает от покупателя), а также для транзакций или товаров (так как они получают его через лота и покупателя).На физическом уровне вы можете иметь их в качестве атрибутов (называемых денормализацией), у вас есть риск того, что данные, например, будут отображаться в LOT 1234 на CUSTOMER C12 и в STORE S1, в то время как в таблице клиентов C12 находится в хранилище S2.*
Конечно, возможно, вы разрешаете мистеру Смиту закладывать товар в одном магазине, но оплачиваете его в другом.Или, возможно, предмет может быть заложен в одном магазине, но физически перемещен в другой по соображениям безопасности или из-за недостатка места.Если это так, то целесообразно иметь разные идентификаторы хранилища для этих объектов.
Однако это не совсем удобно, поскольку «хранилище» является атрибутом покупателя, поскольку это подразумевает, что они имеют отношения только содин магазин.
Также рассмотрите, что произойдет, если MR P BROKER имеет три магазина, но решит закрыть один и перенести бизнес в другой.Вам необходимо объединить магазины, но обновляете ли вы идентификатор магазина для всех транзакций, статей и лотов (включая те, которые «в процессе» и те, которые были погашены), или вы оставляете их с первоначальным идентификатором магазина?
Другая распространенная проблема моделирования данных - идентификация клиентов.Является ли мистер Смит одним клиентом, а миссис Смит - другим, или мистер и миссис Смит могут быть «частями» одного и того же клиента?Если мистер Смит что-то заложит, может ли миссис Смит выкупить это?Я думаю, что семейные ссоры, оспариваемые семейные реликвии ... Возможно, она не может выкупить ее, но может заплатить за нее.
Если предмет (например, часы) включен в один лот, то выкуплензатем включается в другой лот, получает ли он другой item_id?