Это правильный дизайн схемы для того, что мне нужно сделать? - PullRequest
0 голосов
/ 11 ноября 2010

alt text Бизнес-модель ломбарда:

КЛИЕНТЫ (таблица клиентов), LOTES (таблица лотов), ARTICULOS (таблица позиций) и TRANSACCIONES (таблица транзакций).

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

Достаточно ли вышеупомянутого ER для этой возможности?

Ответы [ 2 ]

1 голос
/ 12 ноября 2010

С точки зрения логической модели, вам, вероятно, не нужен store_id для лота (как он поступает от покупателя), а также для транзакций или товаров (так как они получают его через лота и покупателя).На физическом уровне вы можете иметь их в качестве атрибутов (называемых денормализацией), у вас есть риск того, что данные, например, будут отображаться в LOT 1234 на CUSTOMER C12 и в STORE S1, в то время как в таблице клиентов C12 находится в хранилище S2.*

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

Однако это не совсем удобно, поскольку «хранилище» является атрибутом покупателя, поскольку это подразумевает, что они имеют отношения только содин магазин.

Также рассмотрите, что произойдет, если MR P BROKER имеет три магазина, но решит закрыть один и перенести бизнес в другой.Вам необходимо объединить магазины, но обновляете ли вы идентификатор магазина для всех транзакций, статей и лотов (включая те, которые «в процессе» и те, которые были погашены), или вы оставляете их с первоначальным идентификатором магазина?

Другая распространенная проблема моделирования данных - идентификация клиентов.Является ли мистер Смит одним клиентом, а миссис Смит - другим, или мистер и миссис Смит могут быть «частями» одного и того же клиента?Если мистер Смит что-то заложит, может ли миссис Смит выкупить это?Я думаю, что семейные ссоры, оспариваемые семейные реликвии ... Возможно, она не может выкупить ее, но может заплатить за нее.

Если предмет (например, часы) включен в один лот, то выкуплензатем включается в другой лот, получает ли он другой item_id?

1 голос
/ 11 ноября 2010

Когда клиент покупает товар, предлагаемый широкой публике, это транзакция? Или ваша база данных отслеживает только транзакции по лотам?

Может ли предмет существовать в вашей системе, не будучи частью какого-либо лота? Вы не можете выразить этот факт в представленной вами модели ER.

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

Buena Suerte.

...