![]() |
1
1
从逻辑模型的角度来看,您可能不希望在批次(从客户处获得)或交易或物品(从批次和客户处获得)上存储ID。在物理级别,您可能将这些属性作为属性(称为非规范化),您有显示数据的风险,例如,客户c12和存储s1上的批次1234,而客户表的c12在存储s2上。 当然,你可以允许史密斯先生在一家商店典当物品,但在另一家商店付款。或者一件物品可能会在一家商店典当,但出于安全或空间的原因,实物转移到另一家商店。如果是这样,那么在这些实体上具有不同的存储ID是合适的。 然而,这并不意味着“商店”是顾客的一个属性,因为这意味着他们只与一家商店有关系。 另外,考虑一下如果P先生的经纪人有三家店铺,但决定关闭其中一家,并将业务转移到另一家。您需要合并这些商店,但您是更新所有交易、物品和批次(包括“进行中”的和兑换的)的商店ID,还是保留原始商店ID? 另一个常见的数据建模问题是识别客户。史密斯先生是一个客户,而史密斯太太是另一个客户,还是史密斯先生和夫人可以是同一个客户的“一部分”?如果史密斯先生典当什么东西,史密斯太太能赎回吗?我在想家庭争吵,有争议的传家宝……也许她不能赎回它,但可以用它来支付。 如果一件物品(如手表)包含在一个批次中,然后兑换,然后包含在另一个批次中,它会得到不同的物品ID吗? |
![]() |
2
1
当客户购买向公众提供的物品时,这是交易吗?或者您的数据库只跟踪关于批量的事务? 在您的系统中是否可以存在一个项目而不成为任何批次的一部分?你不能在你展示的ER模型中表达这个事实。 您的ER模型不显示任何多对多关系。这让我怀疑。我从来没有在当铺工作过,所以我不能肯定。但我见过的每一个其他企业数据库都至少有一种多对多的关系。有时,一种关系被视为一个实体,并以它自己的盒子出现。但是这个盒子在不止一种关系的“无限”端,我在你的图表中没有看到。 布埃纳·苏尔特。 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 6 年前 |
![]() |
Patricia Rozario · 数据库设计确保一对一关系 6 年前 |
![]() |
dryhay · MySQL“多对多”关系错误 6 年前 |
![]() |
L. Fox · 我在这里用的是什么样的Laravel雄辩的关系 6 年前 |
![]() |
Geoff Harper · 我应该如何构建关系松散的SQL db 6 年前 |
![]() |
waroxx · SQL—当多个表具有相同的列时,最好怎么做 6 年前 |
![]() |
Lumpi01 · SQL 2不同的注释类型-最佳解决方案? 6 年前 |
![]() |
Hayreddin Tüzel · 预约系统数据库建模[关闭] 6 年前 |