我刚刚第一次设置了用户注册。用户存储在mysql数据库中,现在一切正常,但我知道这不是最好的方法。用户可以有不同的访问类型,现在有5种不同的访问类型,但是将来可能会有更多的访问类型。
目前,users表是这样设置的(我跳过了一些列):
id |username |password |access1 |access2 |access3 |access4
----------------------------------------------------------------------
1 |user1 |12345678 |1 |0 |0 |1
----------------------------------------------------------------------
2 |user2 |12345679 |0 |0 |1 |0
因此,用户1可以访问访问级别1和4所允许的任何内容,而用户2只能访问级别3。
在未来,可能会有10个甚至更多的access10,并且会有几十个用户。
我知道这并不是实现这一点的正确方法,因为每当需要做一些小的更改时,我都必须不断添加访问列(并更改一些代码)。
我想我可以通过做这样的事情使事情变得简单:
id |username |password |accesses
-------------------------------------------
1 |user1 |12345678 |1,4
------------------------------------------
2 |user2 |12345679 |3
但我也发现这有点难相处。e、 g.当我使用where访问(如“%2%”)从表中选择时,我可能会得到12号访问。
第三种选择是有一个单独的表,看起来像这样:
user_id |access
-----------------
1 | 1
-----------------
1 | 4
-----------------
2 | 3
现在,我倾向于最后一种方法。但我觉得我可能忽略了什么。因为我对编码和数据库还很陌生,我希望你能在我允许用户注册之前帮助我,这样我就可以避免出现问题。
有正确的方法吗?
1条答案
按热度按时间mnowg1ta1#
我建议你在第三种选择之外再做一步。有3个表:一个用于用户,一个用于可以担任的各种角色,还有一个实际将用户链接到其角色。
您的用户表将保持与现在类似的状态,只是没有所有的access\ux列。
您的角色表:
以及用户角色表,将两者链接在一起: