当前位置: 首页 > 面试题库 >

我应该将“贷款”,“购买”和“销售”表归一化为一个表吗?

司空叶五
2023-03-14
问题内容

根据我在下面提供的信息,您能否就将单独的表格非规范化为一个包含不同类型合同的表格是否是一个好主意,给我您的意见?。赞成/反对者是什么?..有人尝试过吗?银行系统使用CIF(客户信息文件)[母版],其中客户可能具有不同类型的帐户,CD,抵押等,并使用交易代码[类型],但它们是否将它们存储在一张表中?

我有用于贷款,购买和销售交易的单独表格。这些表中的每行都以以下方式连接到其相应的客户:

customer.pk_id SERIAL = loan.fk_id      INTEGER; 
                      = purchase.fk_id  INTEGER; 
                      = sale.fk_id      INTEGER;

由于这些表之间有许多共同的属性,并且围绕着相同的商品:典当,购买和出售,因此我尝试将它们合并到一个称为“合同”的表中,并添加了以下列:

Contracts.Type char(1) {L=Loan, P=Purchase, S=Sale}

设想:

一个客户最初对商品进行典当,支付了几笔利息,然后决定要将该商品出售给当铺,当铺随后将商品放入库存,并最终将其出售给另一位客户。

我设计了一个通用表,例如:

Contracts.Capital DECIMAL(7,2)

在贷款合同中,它包含典当本金额;在购买中,它包含购买价格;在销售中,它包含销售价格。

这个设计是一个好主意还是我应该将它们分开?


问题答案:

您的表第二设计更好,并且被“规范化”。

您的第一个设计是非规范化设计!

您基本上是在遵循一种称为“子类型/超类型”的数据库设计/建模模式来处理诸如事务之类的事务,在事务中有很多公共数据,并且每种事务类型都有一些特定数据。

有两种方法可以对此进行建模。如果变量数据很小,则将所有内容都保存在单个表中,并且“
nullable”列中保存有事务类型特定属性。(从本质上讲,这是您的情况,您做对了!)。

另一种情况是,“不常见”数据随事务类型的不同而有很大差异,在这种情况下,您有一个表,其中包含所有“常见”属性,每种类型的表中都包含该“类型”的“不常见”属性。

但是,“贷款”,“购买”和“出售”作为交易有效。我认为广告资源是一个不同的实体,应该有一个单独的表格。本质上,“贷款”将添加到库存交易中,“购买”将库存状态更改为“可售”,而“销售”将从库存中删除物料(或将状态更改为已售出)。将商品添加到库存后,其状态仅应更改(它仍然是小部件,小提琴或其他任何东西)。



 类似资料:
  • 我是来自土耳其的卡迪尔。我在一家公司工作。我想用whatsapp API向所有客户发送whatsapp消息。我使用我自己的电话号码来测试下面的代码。此代码中的“from”部分是默认的twilio沙箱号。我用自己的WhatsApp激活了这个沙盒。问题是:我可以向我自己的WhatsApp发送消息。但我不能向另一个whatsapp号码发送消息。为什么会这样?我也想发送whatsapp消息给其他人。谢谢你

  • 我正在尝试将PayPal REST API集成到我的Symfony2 web应用程序中,但我发现很难理解完整的工作流程到底是什么样子的: PayPal文档描述了以下接受付款的步骤。可以使用PayPal Playground模拟以下步骤: 获取访问令牌 通过查询API创建对象 将用户重定向到响应中接收的 用户在PayPal页面上批准支付后,将使用对象中定义的成功链接将其重定向回我的页面。使用接收到的

  • 我是新手。我有以下两张桌子。一张专辑: 另一个是歌曲: 所以所有这些歌曲都属于“自由”专辑。在api调用中,我使用dapper显示所有相册,这很好。 结果如下: 但是我想加入这张专辑的相关歌曲。我试过以下方法,但不起作用,你知道为什么吗? 它只是说:附近的语法不正确。

  • 我试图找到这个数组的AVG:1742,1065,-67,-2988,-796,-1000,31,-67,-100,1180我相信我的方法把数字从POS改成NEG是正确的。我的程序需要计算上述数组,然后打印消息,如果AVG是负数或正数,它总是打印AVG是正数,即使它不是。以下是我目前为止的代码:

  • 本文向大家介绍比较资产购买和股票购买。,包括了比较资产购买和股票购买。的使用技巧和注意事项,需要的朋友参考一下 资产购买和股票购买之间的主要区别如下- 资产购买 购买股票 所有权可以转让。 无法申请税收优惠。 更复杂。 无法重新协商员工协议。 买方承担风险和责任。 所有权可能会丢失,交手。 在市场上更普遍。 不需要退还资产。 少数股东会制造问题。

  • 问题内容: 我正在写一个小脚本来帮助日本假名记忆。我如何将以下列表合并为一个?我尝试如下。 问题答案: 单程: