这是我需要完成的正确架构设计吗?

时间:2010-11-11 06:53:34

标签: schema modeling database-design

alt text Pawnshop商业模式:

CLIENTES(客户表),LOTES(批表),ARTICULOS(项目表)和TRANSACCIONES(交易表)。

我定义批次表的原因是因为当客户典当或出售物品时,典当行将所有这些物品分成一批,计算总贷款或购买金额,将这些值存储在一个交易中并打印带有描述的票证所有项目和总金额。所以我希望有能力说,如果客户违约支付利息或者没有兑换典当,那么客户可以放弃所有物品,典当行可以选择将一些物品卖给黄金炼油厂和/或将其他非黄金物品转移到库存中以卖给公众。换句话说,我希望能够对每个项目进行突破性爆炸。

上述ER是否足以满足此功能?

2 个答案:

答案 0 :(得分:1)

当客户购买向公众提供的文章时,这是一笔交易吗?或者您的数据库是否仅跟踪有关批次的交易?

您的系统中是否存在项目而不属于任何批次?您无法在您提供的ER模型中表达这一事实。

您的ER模型没有显示任何多对多的关系。这让我很怀疑。我从未在典当行工作过,所以我不能肯定地说。但是我见过的所有其他企业数据库至少有一对多关系。有时,关系被视为实体,并且显示为自己的框。但是那个盒子会出现在多个关系的“无限”端,这是我在图中看不到的。

布宜诺斯艾利特。

答案 1 :(得分:1)

从逻辑模型的角度来看,您可能不希望在该批次(因为它来自客户)或交易或文章(因为它们通过批次和客户获得它)中存储了store_id。在物理层面,您可能将这些作为属性(称为非正规化),您有数据显示的风险,例如,LOT 1234在CUSTOMER C12和STORE S1上,而客户表的C12在商店S2。

当然,您可以允许史密斯先生在一家商店典当物品但在另一家商店支付款项。或者也许一件物品可能在一家商店典当,但出于安全或空间原因,物理搬迁到另一家商店。如果是这样,那么在这些实体上具有不同的商店ID是合适的。

然而,由于“商店”是客户的一个属性,因此并不适应,因为这意味着他们只与一家商店建立了关系。

还要考虑如果MR P BROKER有三家商店会发生什么,但决定关闭一家并将业务转移到其他商店。您需要合并商店,但是您是否更新了所有交易,商品和商品(包括“正在进行中”和已兑换的商品)的商店ID,或者您是否将其保留为原始商店ID?

另一个常见的数据建模问题是识别客户。史密斯先生是客户而史密斯夫人是另一个客户,还是史密斯先生和史密斯夫妇是同一客户的“部分”?如果史密斯先生有什么东西,史密斯夫人可以赎回吗?我在想家庭争吵,有争议的传家宝......也许她不能赎回,但可以付款。

如果一件物品(例如手表)被包含在一个批次中,然后兑换,然后包含在另一个批次中,它是否会获得不同的item_id?