Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何构造数据。。。顺序的还是层次的?_Sql_Mysql_Database Design - Fatal编程技术网

Sql 如何构造数据。。。顺序的还是层次的?

Sql 如何构造数据。。。顺序的还是层次的?,sql,mysql,database-design,Sql,Mysql,Database Design,我正在进行构建CMS的练习,该CMS将组织我的雇主每次收到新的销售订单时生成的大量通用文档。每个新的销售订单都有一个5位数的编号(12222223122224等),但在内部,我们对这些编号应用了层次结构: + 121XX |--01 |--02 + 122XX |--22 |--23 |--24 在我的销售订单表中,使用5位数字作为ID并填充是更好,还是使用我们在常规对话中引用作业时使用的层次结构更好?在我看来,不按顺序填充的唯一好处似乎是在以后格式化数据,但这听起来并不是完成额外工作的充分理

我正在进行构建CMS的练习,该CMS将组织我的雇主每次收到新的销售订单时生成的大量通用文档。每个新的销售订单都有一个5位数的编号(12222223122224等),但在内部,我们对这些编号应用了层次结构:

+ 121XX
|--01
|--02
+ 122XX
|--22
|--23
|--24
在我的销售订单表中,使用5位数字作为ID并填充是更好,还是使用我们在常规对话中引用作业时使用的层次结构更好?在我看来,不按顺序填充的唯一好处似乎是在以后格式化数据,但这听起来并不是完成额外工作的充分理由


谢谢

“对于在数字标识符中赋予子字段含义的人,有一个特别的地狱。”

虽然我当然欣赏并重视这句话,但我觉得有必要补充一点,如果业务是这样的,即这恰好是用于订单的编号系统,并且如果业务确实赋予子字段以意义,然后,实施支持该业务的自动化系统的IT人员除了使用该编号系统外别无选择


(那些IT人员可能会指出这种系统的缺点,但IT人员不应该规定业务人员应该和不应该是什么样子。)

对于那些在数字标识符中赋予子字段含义的人来说,有一个特别的地狱

虽然我当然欣赏并重视这句话,但我觉得有必要补充一点,如果业务是这样的,即这恰好是用于订单的编号系统,并且如果业务确实赋予子字段以意义,然后,实施支持该业务的自动化系统的IT人员除了使用该编号系统外别无选择


(那些IT人员可能会指出这些系统的缺点,但IT人员不应该规定业务人员应该和不应该是什么样子。)

这看起来像是一个在文件柜中组织操作系统目录或马尼拉文件的系统,而不是一个数据模型。所以问题是,这种双层结构的价值是什么?是否有任何属性或功能附加到较高的部分(121XX等)?如果没有,这将成为一个纯粹的显示问题,应该这样处理

另一方面,我认为将(121XX,01)实现为复合业务密钥并使用代理密钥作为主键没有任何实际的危害。有一个障碍需要注意:如果销售回升,您可能会收到10万份订单,此时订单号将超过六位数。在大多数风格的数据库中,自然排序顺序为:

100XX
1000XX
101XX 

这看起来像是一个在文件柜中组织操作系统目录或文件的系统,而不是一个数据模型。所以问题是,这种双层结构的价值是什么?是否有任何属性或功能附加到较高的部分(121XX等)?如果没有,这将成为一个纯粹的显示问题,应该这样处理

另一方面,我认为将(121XX,01)实现为复合业务密钥并使用代理密钥作为主键没有任何实际的危害。有一个障碍需要注意:如果销售回升,您可能会收到10万份订单,此时订单号将超过六位数。在大多数风格的数据库中,自然排序顺序为:

100XX
1000XX
101XX 

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

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

有一个特别的地狱留给那些在数字标识符中给子字段赋予意义的人。你真的只希望得到最多99999个订单…?有一个特别的地狱留给那些在数字标识符中给子字段赋予意义的人。你真的只希望得到最多99999个订单…?我我从未想过自己是一个“IT”人员,但作为一名系统分析师,我经常不得不告诉业务部门,如果不对他们的实践进行重大改变,他们的手动系统就无法电脑化——这就是我得到报酬的原因。我从未想过自己是一个“IT”人员,但作为一名系统分析师,我经常不得不告诉业务部门,如果不对他们的实践进行重大改变,他们的手动系统就无法电脑化——这就是我得到报酬的原因。