我正在为一个新的ERP (CloudSu套工业)中的项目创建一个结构,我正在实施。对于项目(可以是成品/产品或原材料),我们目前有一个三级的组织体系。我试图确定将该信息映射到产品代码的最佳/标准实践。
在CSI中,产品代码可以与一些特殊字符(如连字符和下划线)一起使用字母数字,并且有10个字符的最大值。
- Division B
- Category 1
- Category 2- Boats
- Yachts
- RowboatsItemType +连字符+ 分部 +连字符+ 类别
Finished(成品-汽车-轿车)FG Y(成品-船-游艇
当向上级提出这个想法时,回答是:“为什么不直接做顺序数字呢?”CSI为描述提供了一个单独的文本字段,它显示在产品代码旁边。这将意味着,如果我有一个代码"Finished“,然后在它旁边的页面上,它将显示另一个文本框与”成品,汽车,轿车“,所以没有真正的需要本身是智能/人类可读的。
但是,我看不到使用智能/人类可读的代码的实际缺点。如果数据是导出的,这似乎是有用的,因为它的一部分代码记录了它自己,而代码的描述是一个单独的表。
我想得到一些反馈,其他ERP用户通常做的设置这一点。
谢谢!
基于这里的答案,以及CSI Linkedin小组和ERP分系统的讨论,我们决定采用混合模式:
这是两个世界中最好的。它符合CSI关于简单的"FG“、"RM”等的建议,它在每个顶级组中提供了多达99个可能的类别。因为类别是数字的,如果我们改变了对一个(将“汽车”改为“车辆”)的引用方式,那么产品代码就不会改变。
发布于 2020-07-21 13:24:38
您目前的要求没有考虑到时间的影响:您的公司迟早会更新其目录或重组其组织结构。然后,必须以不同的方式组织项目:
是的:为什么不只是顺序数字呢?是否有任何明显的理由反对它,理解你总是可以有一个弹出或链接显示额外的项目属性,甚至打印什么是必要的标签上,如果它是相关的。
发布于 2020-07-21 20:50:14
在我正在开发的ERP中,所有表都有一个代理项,几乎所有表都有一个自然密钥。从Christophe和Ewan的答案可以看出,这两种类型的键都有其优点和缺点。因此,两者兼而有之是有意义的,尽管这增加了复杂性。这个ERP中的关系通常是用代理键来完成的,但是这些键几乎从不向用户显示。相反,当数据显示给用户时,代理键将被替换为它们的自然密钥。这是该ERP中所有数据结构的基本行为/功能,仅在您的特定场景中实现它可能会有些过分。
如果我必须选择的话,我不确定我会在您的场景中选择哪种方法。仔细看看您的需求以及每种方法的优缺点。
发布于 2020-07-21 12:23:51
您比较的是自然键与代理键。
您的自然密钥是productType = SEDAN,代理密钥可能是productType =7
我对代孕键的主要问题是,当人类开始使用它们时,它们就获得了一个伪意义,并成为了自然的键。不久,企业就不会说,“给我看我们今年售出的所有轿车的报告”,而是说“给我看看我们今年销售的所有7类产品的报告”。
然后有人开始销售一种新型轿车,他们不记得7辆==轿车,你得到的是productType = 124 == SEDAN2
当您合并数据并有两种不同类型的3's时,可能会出现技术问题。
我也要提醒你不要用复合钥匙。如果你与产品类型“FG”,然后有人后来决定,轿车是车辆,而不是汽车,你有麻烦。
还有很多其他的问题你可能也会遇到。
如果某物有天然的钥匙,就用它。只要有轿车就是轿车,游艇,游艇等等。
https://softwareengineering.stackexchange.com/questions/412954
复制相似问题