Sql 多值属性的最佳数据库结构

Sql 多值属性的最佳数据库结构,sql,database,postgresql,Sql,Database,Postgresql,我正在使用PostgreSQL,目前有两个模型 用户(用户id、用户名) 玩家(玩家id、玩家标题、玩家描述) 我想为用户添加功能,以便为玩家和其他用户添加特征。我正在考虑创建一个名为Characteristics(Characteristics\u id,Characteristics\u description,user\u id,player\u id)的新表 每个用户可以向多个玩家添加多个特征。我了解到向一行添加多个值对于数据库来说不是最佳选择,因此我的第二个选择是在characteri

我正在使用PostgreSQL,目前有两个模型

  • 用户
    (用户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的建议哪种方式合适?