我正在使用 Yii 框架开发一个应用程序,因此它是 MVC 风格的。我有一个记录类型“人”,其中包含有关成员资格的信息。会员有两种类型:成人和儿童。对于孩子们,我们知道他们中的一些人的年龄,他们被分成不同的年龄组。年龄组有名字(例如“8 岁及以下”。)例如,John Smith 和 Jane Smith 有两个孩子 Jimmy Smith 和 Janey Smith。Janey 想做一个足球节目,所以我们需要知道她的年龄并将她放在一个年龄组中。吉米正在做艺术和手工艺,所以我们不需要知道他的年龄,因为他的节目没有按年龄划分。而且我们不询问成年人的年龄。
所以问题是:关于如何存储它,我有几个选择。我可以:
- 在 person 表中放置一个 int agegroup 字段,并在我为人定义模型时将值定义为 CONST 值(并且对于“未定义”可能有一个特殊值 - 对于成年人。然后我需要编写一些代码来翻译描述性标签的 const 值。
- 如上在人员表中放置一个年龄组字段,但还要在数据库中添加另一个带有参考数据的表。对这个新表实施参照完整性。这引发了另一个问题 - 对于我不知道/不关心年龄组的情况,我应该在参考表中创建一个虚拟记录,还是应该在人员表的年龄组字段中允许空值?
- 其他的?
我知道我可以使这些工作中的任何一个工作。但我欢迎就哪种方法更受欢迎以及为什么提供建议!