我在mysql中有一个USERS表,它与m表示关系,带有CITY表。
用户是由字段TYPE标识的3种类型:常规,管理员,超级。
普通用户最多可以与1个城市相关联。 管理员用户最多只能链接1个城市。 超级用户与所有城市相关联。
将所有3种类型的用户存储在一个表中是正确的,并且n:m对于大多数用户来说只有1:m而且SUPER USER是纯粹的n:m。这是正确的方法吗?
答案 0 :(得分:1)
就我个人而言,我认为您不需要单独的关系表(即使您对未来的改进主要是好主意,如果您决定用户需要连接到多个城市)。
我要做的是在users表中创建city_id
列,并相应地填充它。我之所以这样说是因为超级用户,就像你打电话给他们一样。如果您创建单独的关系表,它将具有(number of super users) * (number of cities)
条目,并且由于超级用户可以查看所有城市,因此每次创建新用户时都需要向表中添加(number of cities)
行。此外,每次创建新城市时,都需要将(number of super users)
行添加到关系表中。
相反,正如我所说,我只会在用户表中使用city_id
,如果用户super user
,那么他会看到所有城市,如果没有,则只看{{1列。
这只是我个人的偏好。
让我知道你的想法。