需要帮助结构我的SQL数据库组设置



我试图建立一个'facebook组'风格的应用程序,其中包含组和每个组都有自己的一组设置。

所以我创建了3个表:
groups - (id, name..)
settings - (id, key)
groups_settings - (group_id, setting_id, value) group_id + setting_id are a primary key

和它的工作良好的单值设置(如min_age, max_age等..)。

但现在我面临一个问题,当我有一个可以有多个值的设置键,例如:"allowed_countries"这是一个允许的国家的列表,用户可以加入。

我不能有多个行具有相同的group_id和setting_id,因为它们在主键约束下。

那么你怎么解决这个问题呢?我应该重组我的数据库吗?

所以你有一个多对多的关系(用户到国家)。建模的一种方法是使用如下所示的查找表:

users表有主键user_id(和其他列)国家表有主键country_id(和其他列)User_country_mapping表恰好有两列:

  • user_id是用户表
  • 的外键
  • country_id是国家表
  • 的外键。

最新更新