对象(如人)和项(如工资项)数据设计结构

时间:2013-12-04 01:12:33

标签: data-modeling perl-data-structures

这可能是一个经典的要求。两个关键概念对象和项目,时间变化需求,项目可以很快改变。

例如一个人有这么多工资项目,这些项目将被添加,更改或删除。

我们的解决方案非常简单,它是500列表,并将项目映射到列。

这超出了硬编码。这种解决方案有很多缺点。

**What's the classical solution about this requirement**

1 个答案:

答案 0 :(得分:1)

当我从你的问题中收集时,这是一个经典的一对多(1-M)关系。一方是(对象),多方是(项目)。该项应该有一个指向其“父对象”的列。这列可以包含父表的主键值(通常称为外键)。子表(项目)可以具有有效期(例如开始日期,结束日期)以及除业务列之外的其他控制列(例如工资金额等)。这种设计在规范化数据库建模中很常见。

这种设计有很多优点。其中一个与您相关的情况是,您不必拥有大量列,而是拥有多行,这些行允许您获取您希望满足大多数业务查询的内容。类似地,Create和Update操作将处理更小的行,从而提高应用程序的性能。