假设我有一个产品系统,可以有各种装饰(或印刷)选项。
大多数产品将具有类似的打印选项名称范围,但某些产品可能是单一产品独有的。
例如,我可以有一个可以有三种不同装饰选项的帽子:
- 无品牌
- 一种颜色打印
- 刺绣
我的目标是尽量减少管理员用户创建的装饰选项名称,以便它们始终相同。IE 我不希望一些装饰选项被称为“1 色打印”,然后另一个被称为“单色打印”。
所以我的计划是在 UI 中下拉现有的装饰选项名称,但也让他们可以选择添加一个新的选项(对于边缘情况)。
但是,每个装饰选项都有各种其他数据,例如设置成本、生产时间等,这些数据因产品而异。
例如,Hat1 和 Hat2 都可以有刺绣装饰选项,但 Hat1 的设置成本为 49 美元,Hat2 的设置成本仅为 35 美元。
所以我的问题是,构建我的实体的最佳方式是什么?我应该拥有三个实体:Product、DecorationOption 和 DecorationOptionName?还是只有两个实体:Product 和 DecorationOption?
请查看我的代码示例以进一步了解: