假设我有一个 Person 表,用于存储有关该人的信息(很奇怪吧?我为性别、头发颜色和眼睛颜色等选择了框。与其为每个表创建一个单独的表,每个表都有一个描述字段,有没有使用单个表的好方法?也许是带有"名称"和"描述"字段的资源表?就这么简单吗?
Resources
=========
ID Name Description
--------------------
1 Gender Male
2 Gender Female
3 Eye Color Blue
4 Eye Color Green
5 Eye Color Brown
6 Hair Color Black
7 Hair Color Brunette
8 Hair Color Blonde
9 Hair Color Red
Person
=========
ID Name Gender Eye_Color Hair_Color
-----------------------------------------------
1 Ryan 1 3 8
这是推荐的方法还是有更好的方法?
是的,就是这么简单,IMO 你的方法是正确的。但请注意,如果您选择 Ex:一个人的多种头发颜色,您的方法将不起作用。
但我相信保持代码简单,直到您需要更改它,请在有时间时阅读 YAGNI :)
你可以这样做,这将是一个多态的关联。
如果您不需要查询此信息,但只是能够访问它,则可以使用 serialize 并将所有值存储在一列中。所以一个人的记录会有一列,我们称之为属性,它会有"eye_color:蓝色,性别:男性",等等......
我会在 Person 和 Physical_attributes 之间创建一个Physical_attributes单独的表,personal_physical_attributes,在那里我将存储人员的 ID、Physical_attribute的 ID 和该Physical_attribute的描述。