我是一个网页开发人员,所以我对数据库不太了解。我最近加入的公司有一个非常成熟的桌面ERP内置于.NET和Server,他们正在为巨大的企业客户提供服务,那里的设计运行良好。但他们没有开发任何基于网络的系统。但在那里,数据库设计是非常不寻常的。让我来解释一下,然后我会把我的问题发出来。
所以,现在我加入他们的行列,开发了一个基于web的ERP (网络桌面系统的复制品)。由于我是从零开始建立申请,他们给了我修改任何我认为会产生积极效果的东西的自由。
现在的设计是
我认为这个信息已经足够了。现在我想问
谢谢。
发布于 2016-07-23 17:43:00
你有两个选择:
我推荐第一条,因为第二条很难,你的同事和老板会怀疑你的看法。与您的进展有关的任何问题都将归结为您疯狂的数据库设计。
您描述的数据库包含了典型的实体-值-属性设计错误。设计人员选择删除数据库对应用程序的所有意义,而不是在话语世界中以真实世界实体为模型定义表,而是使用DBMS来执行和推断它们之间的逻辑关系。应该在数据库中的实体是在内存中使用为S1等提供意义的应用程序逻辑构造的。从数据库的角度来看,这绝对是一场噩梦。
这也可以理解。EVA设计通常出现在很少有数据库专业知识的地方,以及问题域不太了解的地方。这就意味着“数据库中的任何东西都可以进入”,而EVA的设计将确实包含“任何东西”。在客户决定实际设计的范围内--即为每个数据库列提供独立的含义--应用程序充当一种DBMS代理。每个表都有大量未使用的列,这表明它们的使用可能是由客户决定的:客户可以“添加一列”,而应用程序则从未使用的堆中提取一列。不需要更改架构。是动态的!
整个行业都是基于这个想法。例如,所谓的“主数据管理”工具归结为EVA设计,客户在应用程序中设计数据库,应用程序以您描述的方式使用DBMS。
https://stackoverflow.com/questions/38542010
复制相似问题