这可能是一个经典的要求。两个关键概念对象和项目,时间变化需求,项目可以很快改变。
例如一个人有这么多工资项目,这些项目将被添加,更改或删除。
我们的解决方案非常简单,它是500列表,并将项目映射到列。
这超出了硬编码。这种解决方案有很多缺点。
**What's the classical solution about this requirement**
答案 0 :(得分:1)
当我从你的问题中收集时,这是一个经典的一对多(1-M)关系。一方是(对象),多方是(项目)。该项应该有一个指向其“父对象”的列。这列可以包含父表的主键值(通常称为外键)。子表(项目)可以具有有效期(例如开始日期,结束日期)以及除业务列之外的其他控制列(例如工资金额等)。这种设计在规范化数据库建模中很常见。
这种设计有很多优点。其中一个与您相关的情况是,您不必拥有大量列,而是拥有多行,这些行允许您获取您希望满足大多数业务查询的内容。类似地,Create和Update操作将处理更小的行,从而提高应用程序的性能。