Sql 多值属性的最佳数据库结构
我正在使用PostgreSQL,目前有两个模型Sql 多值属性的最佳数据库结构,sql,database,postgresql,Sql,Database,Postgresql,我正在使用PostgreSQL,目前有两个模型 用户(用户id、用户名) 玩家(玩家id、玩家标题、玩家描述) 我想为用户添加功能,以便为玩家和其他用户添加特征。我正在考虑创建一个名为Characteristics(Characteristics\u id,Characteristics\u description,user\u id,player\u id)的新表 每个用户可以向多个玩家添加多个特征。我了解到向一行添加多个值对于数据库来说不是最佳选择,因此我的第二个选择是在characteri
用户
(用户id、用户名)玩家
(玩家id、玩家标题、玩家描述)Characteristics
(Characteristics\u id,Characteristics\u description,user\u id,player\u id)的新表
每个用户可以向多个玩家添加多个特征。我了解到向一行添加多个值对于数据库来说不是最佳选择,因此我的第二个选择是在characteristics
表中存储多个特征。但我仍然发现这是多余的,因为这些值正在重复
有没有更好的方法来构建我的数据库
例如:
特性表可能如下所示:
characteristic_id characteristic_description user_id player_id
1 good 1 1
2 bad 1 2
1 good 2 1
1 good 2 2
我觉得这是多余的。有更好的办法吗?我也不知道如何为用户添加特性,以便为其他用户添加特性
谢谢除了特性表之外,添加一个PlayerCharacteristics连接表,列出每个玩家的特性。谢谢,我将对此进行研究。您还有关于向用户添加特性的建议吗?最好的方法是什么?这是在关系世界中最好也是唯一正确的方法。数据库设计的第一个标准形式清楚地表明,任何属性都不能有多个值——这不再是关系性的了。嗨,marc_s,我的例子或Pieter的建议哪种方式合适?