繁体   English   中英

用于多个用户属性的数据库设计

[英]Database design for multiple user attributes

我正在使用Laravel构建应用,并且我的用户也有个人资料。 我不确定为用户属性设置数据库的最佳方法,例如

user_ud  |   name  |  gender  |  haircolor
   1         josh       1           3

从这个快速示例中可以看到,这是我的配置文件表当前的样子,因为从选择框中填充了值。

我的问题是。 然后是将这些价位映射到这样有意义的值的bes方法。

 id  |  gender
  1      male
  2      female

 id  | hairColor
  1      blonde
  2      brown
  3      black

等等,为每种属性类型创建一个新表? 还是有更好的方法呢?

我将为这些使用一个ENUM

$table->enum('gender', ['male', 'female']);

头发的颜色重要吗? 您是否自己插入颜色,如果没有人红色,您是否仍然需要有关数据库中存在颜色的信息?

使用这种数据,通常不是这种情况,并且容易对数据库进行过度规范化,从而导致额外的查询,并且没有任何好处。

在这种情况下,将颜色存储为字符串值非常好。 对于性别,枚举也可以。 除非您是Facebook,并且需要数十种“性别”选项供那些认为自己的权利受到侵犯的人使用,如果您不包括他们自己的特定性观点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM