【问题标题】:INVENTORY SYSTEM! Problems with tables库存系统!表的问题
【发布时间】:2018-03-12 23:34:46
【问题描述】:

大家好!附图是我们在 MySql Workbench 中当前数据库设计的截图。我们将它提交给我们的教授并说我们的架构是错误的,特别是在产品类别(蛋糕、纸杯蛋糕、派)中,因为它应该在产品表中。

您能帮我通过添加更多表而不是 5 个表来改进这种模式吗?

【问题讨论】:

  • 抱歉,您能否更深入地说明您的业务/功能问题?
  • 嗨!这只是我们学校的一个项目。
  • 学校或工作,每个项目都需要要求。项目描述不清楚

标签: database database-design mysql-workbench erd inventory


【解决方案1】:

由于您的其他表格(蛋糕、馅饼等)没有添加任何新属性,因此很难想象您为什么需要它们。 cakes 中的行不会与products 中引用的行完全相同吗?

如果您需要区分产品类别,只需在您的products 表中添加一列用于该类别。

附:请不要养成在所有表名前加上“tbl”前缀的习惯。这是多余的,因为如果您可以从中查询,它显然是一个表。跳过“tbl”。同样,不要在列名中编码数据类型。如果有一天您需要更改数据类型怎么办?它会破坏您的所有查询。

附言不要将FLOAT 用作货币——使用NUMERIC
https://twitter.com/billkarwin/status/347561901460447232

另请阅读What Every Computer Scientist Should Know About Floating-Point Arithmetic

【讨论】:

  • 哇!感谢您的反馈!我之所以为表和数据类型添加前缀,是因为我们在该学科的教授喜欢我们在涉及数据库中的实体时遵循正确的命名约定,这就是原因。
  • 有没有办法在我们的库存系统中添加更多表格?我仍然对要添加的内容感到困惑,也许是员工?
  • 抱歉回复晚了
  • 好的,按照老师的表和列命名规则。请注意,当你进入真正的职业生涯时,你不会使用这样愚蠢的前缀。但在学校期间没关系。
  • 至于更多表,我希望Sale 应该引用CustomerSale 也可以引用 Employee,例如,如果您需要该员工因销售而获得信用(也许员工是按佣金支付的)。如果客户在一次访问中购买了几种不同的糕点怎么办?每个Sale 应由LineItem 表引用,其中每个LineItem 是一个产品和数量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
  • 1970-01-01
相关资源
最近更新 更多