我正在尝试构建一个'facebook groups'样式应用程序,其中包含组,每个组都有自己的一组设置。
所以我创建了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的行,因为它们在主键约束下。
那你怎么解决这个问题呢?我应该重组我的数据库吗?
答案 0 :(得分:-1)
所以你有一个多对多的关系(用户到国家。)建模的一种方法是有一个像这样的查找表:
users表有主键user_id(和其他列) countries表有主键country_id(和其他列) user_country_mapping表正好有两列:
这样,您可以保持数据模型的清洁。