企业软件中主文件的数据库设计

时间:2010-06-09 17:17:59

标签: database

我想写一个企业软件,现在我正处于数据库设计阶段。该软件将包含一些主数据,如供应商,客户,库存,银行家......

我考虑了2个选项:

  • 将其中的每一个放在一个单独的表中。优点:该表将包含该类主文件的所有必要信息(客户:名称,地址,... /库存:类型,制造商,条件......)。缺点:不灵活。当我想要一个新类型的主数据时,比如保险公司,我必须设计另一个表。

  • 将all放在一个表中,并且该表具有另一个表的外键,该表具有每种主数据的类型(表1:id,data_type,代码,名称,地址....;表2: data_type,data_type_name)。优势:灵活 - 如果我想要更多主数据,如保险公司,我只需输入表2:代码:002,名称:保险公司,然后将每个保险公司的详细信息放入表1)。缺点:表1必须有足够的字段来存储所有类型的信息,包括:客户名称,地址,帐户,库存制造商,库存质量......)。

您通常采用哪种方法(或者您认为工作更好)。 非常感谢你

2 个答案:

答案 0 :(得分:1)

逻辑上,每个“主”实体都应该在自己的表中

如果你不这样做,你会发现连接会变得非常痛苦,你的通用查找表会积累各种无用的字段

答案 1 :(得分:1)

我建议为每个实体类型创建单独的表 - 当您发现要为一个不适用于其他实体类型的实体类型添加要添加的内容时,将来会更容易维护。如果所有实体(供应商,客户等)将具有相同的字段,并且唯一的区别是它们的类型,那么理论上您可以使用一个表。但是,我希望实体类型之间存在足够的差异,值得为每个实体类型创建单独的表。如果有多个共同的字段(例如地址信息),您可以为公共元素创建一个表,并在具有公共数据(例如AddressID)的表的各个表中具有外键。