首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >考虑到以下规则,我应该如何最好地设计表和关系?

考虑到以下规则,我应该如何最好地设计表和关系?
EN

Database Administration用户
提问于 2012-10-29 03:55:09
回答 2查看 1.2K关注 0票数 6

在当铺生意中,顾客典当、出售或购买物品。一种合同,它指定客户的信息、项目以及条款和条件,每当客户典当、出售或购买物品时,就会创建该合同。

每项合同最多允许6项。如果有超过6,那么他们必须被分成不同的合同。这一限制的原因是因为每种印刷形式只能存在一个唯一的合同。该表单为8.5乘5.5英寸(半页大小),因此每个表单上只有6个项目描述。我们在法律上不能拥有同一合同的第2页第1页。

属于合同的所有项目都分配了一个批号。这个批号也恰好是合同号。批号增加,不管它是典当,买卖合同。每种类型的合同将保持自己的收据序号。为典当合同设想一个单独的垫子,在右上角有一个收据号码,一个单独的购买垫和一个单独的销售垫。

销售和购买是最终的!

但是,客户可以在其活动典当上支付利息,在这种情况下,客户向出纳员提供其原始收据的副本以及利息支付。然后,为相同的典当项目(即使用相同的lot#)发出新的收据,显示新的到期日,原始或先前的收据被取消并由出纳存档。

当顾客赎回他们的典当时,就不会发出新的收据。客户在收据上签名,声明典当物品已归还给他们,收银员取消收据并将其归档。

当其他客户典当物品或支付利息时,新收据被写入并交给客户。

编辑:如果当铺不会为每次支付利息提供新的收据,而只是更新原始合同的支付日期,金额和新的到期日,那么我们就不会有复杂的!但是,我们有一个典当收据号码,有时会增加,有时不会增加,这取决于每个典当上操作的事务类型。

以下是一段时间内典当交易的一个例子:

代码语言:javascript
运行
复制
    CUSTOMER   TRANSACTION DATE/TIME   TRANSACTION TYPE     RECEIPT#
    --------   ---------------------   ----------------     --------

    Frank      Oct-28-2012,  9:00 am   New Pawn, Lot#501      P12345
    Mark       Oct-28-2012,  9:05 am   New Pawn, Lot#502      P12346
    Jeff       Oct-28-2012,  9:20 am   New Pawn, Lot#503      P12347

    ...
    (several other new pawns, which increment the lot and receipt numbers, and  
     interest payments which only increment the receipt numbers.)

    Mark       Nov-26-2012, 12:30 pm   Pawn Lot#502, Int Pymt P12945
    Frank      Nov-26-2012, 12:32 pm   Pawn Lot#501, Redeemed P12345 (no change)
    Jonathan   Nov-26-2012, 12:35 pm   New Pawn, Lot#600      P12946
    ...

    Jeff       Jan-30-2013, 12:39 pm   Pawn Lot#503, Forfeit  P12347 (no change)

正如您所看到的,典当批号在典当的生死存亡过程中从未改变过,但随着不同客户对现有典当或典当新项目进行利息支付,收讫号也随之增加。如果客户在到期日或到期日之前不支付任何利息或赎回当押物品,则客户将没收当押物品(收条号码保持不变),当铺将将这些物品放入库存。

顺便说一句,当当铺取出一个成熟的典当时,该典当中的每一件物品都被分配给最新的收据号码,在每个合同中以项目号作为后缀。然后他们被转移到当铺的存货里。

因此,当押批号503号中的第二个项目,其收据编号为P12347,将转入库存,库存编号为“P 12347-2”,其中"P“代表当铺,"12347”是当前的收据号,"-2“是该典当合同中的第二项。

我个人不愿使用这个编号方案,但许多在我的树林脖子上的当铺喜欢这样做,因为他们声称,他们可以根据某一特定典当的收件编号来判断最后一次活动是什么时候,再加上他们可以按时间顺序保存所有的典当,这样就可以更容易地提取它们。

因此,鉴于上述规则和示例,使用Informix或MS 2010 JetDB之类的SQL设计这些规则的表和关系的最佳方法是什么?

如果所有的典当、买卖,或者每个单独的合同表都有一个合同表,这是最好的吗?在contracts表上操作的transactions表如何?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2012-10-31 01:49:12

据我所理解,除了一个客户表之外,您还需要三个表:

  1. 合同-持有关于合同的单一价值数据,不包括收据.它可能记录合同的最新收据编号,但这将是一个优化,存储可衍生数据。主键:合同号(也称批号)。
  2. 合同项目-持有合同的1-6项。主键:批号,批号。批号是指合同的外键。
  3. 收据-保存有关收据的信息。主键:收据号码。外键:合同号再次引用合同。

给定的收据与一份合同相关联;如果一份合同是典当合同,一份合同可能会有多份收据(买卖合同将有一份收据)。

即使在典当合同取消时没有发出新的收据,也需要对合同或收据(或两者都更新)进行数据库更新,以指示合同已被取消。

这里有我遗漏的东西吗?

票数 5
EN

Database Administration用户

发布于 2012-10-29 04:04:07

我会有三个表:一个用于合同(包含合同编号和合同项目的详细信息),一个用于客户(包含客户的个人信息),另一个用于事务(通过许多关系将两者连接起来,还包含交易日期、事务类型--尽管您可能希望为每种类型分别创建表,但这取决于您--以及所涉及的金额)。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/27796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档