我正在使用Laravel构建应用程序,我的用户也有个人资料。 我不确定是为用户属性设置数据库的最佳方式,例如
user_ud | name | gender | haircolor
1 josh 1 3
从这个快速示例中可以看出,这是我的配置文件表当前的样子,因为从选择框填充了值。
我的问题是。然后将这些vales映射到像这样的有意义的值。
id | gender
1 male
2 female
id | hairColor
1 blonde
2 brown
3 black
等为每种属性类型创建一个新表?或者有更好的方法吗?
答案 0 :(得分:2)
我将ENUM
用于这些:
$table->enum('gender', ['male', 'female']);
答案 1 :(得分:0)
头发颜色作为一个实体很重要吗? 您是否自己插入颜色,如果没有红色,您是否还需要有关数据库中存在的信息?
对于这类数据,通常情况并非如此,并且容易导致数据库过度规范化,从而导致额外的查询而且没有任何好处。
在这种情况下,将颜色存储为字符串值是完全正常的。 Enum也适合性别。 除非你是Facebook并且需要几十个性别"如果你没有包含他们自己特定的性观点,那些认为自己的权利受到侵犯的人可以选择。