繁体   English   中英

如何构造数据……是顺序的还是分层的?

[英]How to structure data… Sequential or Hierarchical?

我正在构建一个CMS,每次收到新的销售订单时,该CMS将组织我的雇主生成的许多常见文档。 每个新的销售订单都有一个5位数字(12222、12223、122224等),但是在内部,我们对这些数字应用了层次结构:

+ 121XX
|--01
|--02
+ 122XX
|--22
|--23
|--24

在我的销售订单表中,最好使用5个数字作为ID并填充,还是使用我们在常规对话中引用工作时使用的层次结构更好? 在我看来,不按顺序填充的唯一好处似乎是稍后格式化数据,但这听起来不足以作为进行额外工作的充分理由。

谢谢

最肯定的是,您应该使用5位ID作为主键。 有时,显而易见的答案是简单的答案。

“为在数字标识符中赋予子字段含义的人们保留了一个特殊的地狱。”

尽管我可以肯定并赞赏此话,但我不得不补充一下,如果业务如此,这恰好是用于订单的编号系统,并且碰巧业务确实附加了含义,子领域,那么实施支持该业务的自动化系统的IT人员别无选择,只能依靠该编号系统。

(那些IT人员可能会指出此类系统的缺点,但它与IT人员无关,它决定了业务内容应该和不应该是什么样。)

这看起来像一个用于在机柜中组织OS目录或manila文件的系统,而不是数据模型。 所以问题是,这种两层结构的价值是什么? 较高档(121XX等)上有任何属性或功能吗? 如果不是,则这仅是显示问题,应照此处理。

另一方面,对于将(121XX,01)用作复合业务密钥并将代理密钥用作主密钥,我没有看到任何实质性的危害。 需要注意的一点是:如果销售回升,您可能会达到10万个订单,这时订单号将跳至六位数。 在大多数数据库版本中,自然排序顺序为:

100XX
1000XX
101XX 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM