代码之家  ›  专栏  ›  技术社区  ›  Joe R.

这是我需要完成的正确的模式设计吗?

  •  0
  • Joe R.  · 技术社区  · 14 年前

    alt text 当铺经营模式:

    客户(客户表)、LOTS(批次表)、Articulos(项目表)和Transacciones(交易表)。

    我定义一个批次表的原因是,当客户典当或出售物品时,典当店将所有这些物品分组为一个批次,计算总贷款或购买金额,将这些值存储在一个交易中,并打印包含所有物品和总金额说明的票据。所以我想说,如果客户拖欠利息或不赎回典当,那么客户将没收所有物品,典当行可以选择将一些物品出售给黄金精炼厂和/或将其他非黄金物品转移到存货中,然后出售给公众。换句话说,我希望能够对每一个项目进行一次爆炸。

    上述ER是否足以满足该能力?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Gary Myers    14 年前

    从逻辑模型的角度来看,您可能不希望在批次(从客户处获得)或交易或物品(从批次和客户处获得)上存储ID。在物理级别,您可能将这些属性作为属性(称为非规范化),您有显示数据的风险,例如,客户c12和存储s1上的批次1234,而客户表的c12在存储s2上。

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

    然而,这并不意味着“商店”是顾客的一个属性,因为这意味着他们只与一家商店有关系。

    另外,考虑一下如果P先生的经纪人有三家店铺,但决定关闭其中一家,并将业务转移到另一家。您需要合并这些商店,但您是更新所有交易、物品和批次(包括“进行中”的和兑换的)的商店ID,还是保留原始商店ID?

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

    如果一件物品(如手表)包含在一个批次中,然后兑换,然后包含在另一个批次中,它会得到不同的物品ID吗?

        2
  •  1
  •   Walter Mitty    14 年前

    当客户购买向公众提供的物品时,这是交易吗?或者您的数据库只跟踪关于批量的事务?

    在您的系统中是否可以存在一个项目而不成为任何批次的一部分?你不能在你展示的ER模型中表达这个事实。

    您的ER模型不显示任何多对多关系。这让我怀疑。我从来没有在当铺工作过,所以我不能肯定。但我见过的每一个其他企业数据库都至少有一种多对多的关系。有时,一种关系被视为一个实体,并以它自己的盒子出现。但是这个盒子在不止一种关系的“无限”端,我在你的图表中没有看到。

    布埃纳·苏尔特。