在用户表中对一组用户进行排序

时间:2014-06-28 13:00:58

标签: php mysql sql

我有用户表,我将所有用户(管理员,作者和普通用户)存储在此表中。我想订购作者(他们在报纸上撰写专栏文章)。那么我应该遵循哪种方式?我不知道该怎么办。虽然我尝试了一些方法。我向users表添加了一个“order”列,我不知道接下来要做什么。请给我一些建议。我的表结构:

+----+-----------------+------------------+-------+-----------+-------+
| id | username        | password         | order | is_author | level |
+----+-----------------+------------------+-------+-----------+-------+
|  1 | admin2          | pass             |     0 |         0 |     3 |
|  2 | admin1          | pass             |     0 |         0 |     3 |
|  3 | writer&admin    | pass             |     0 |         1 |     3 |
|  4 | normaluser      | pass             |     0 |         0 |     0 |
|  5 | writer          | pass             |     0 |         1 |     1 |
+----+-----------------+------------------+-------+-----------+-------+

其他信息:

3级 - 超级管理员 2级 - 编辑(只能添加新闻和管理用户) 1级 - 作者 0级 - 普通用户

为什么我需要is_author colunm?

因为每个编辑或超级管理员都不是作家。对于同时作者和管理员的人,我添加了一个额外的列is_author。

给我一​​些建议。

1 个答案:

答案 0 :(得分:0)

根据您的方法,创建2个表格 -

1)用户
2)user_role


用户表:

 +----+-----------------+------------------+--------------+----------+
 | id | username        | password         | role_id (FK) | priority |
 +----+-----------------+------------------+--------------+----------+
 |  1 | admin2          | pass             |            1 | NULL     |
 |  2 | admin1          | pass             |            1 | NULL     |
 |  3 | writer&admin    | pass             |            2 | 1        |
 |  4 | normaluser      | pass             |            4 | NULL     |
 |  5 | writer          | pass             |            3 | 3        |
 +----+-----------------+------------------+--------------+----------+


user_role表:

 +----+---------------------------+--------+
 | id | role                      | level  |
 +----+---------------------------+--------+
 |  1 | admin                     | 1      |
 |  2 | writer and admin          | 2      |
 |  3 | writer                    | 3      |
 |  4 | user                      | 4      |
 +----+---------------------------+--------+