php - 公共(public)表引用,Int 还是 String 标识符?

标签 php mysql database database-design user-permissions

我想知道如何采取最好的方法来解决这种情况。这是一个数据库结构问题...让我们看看案例。

我有一些具有相同结构的数据库(比如说 db_A、db_B、db_C)。当然,它们的结构相同,但数据不同。

还有一个具有权限 (db_permissions) 的数据库,另一个具有用户 (db_users) 的数据库。

db_permissions结构表将是ID,权限;其中permission是一个唯一的字符串标识符(如post:create)。

现在,有一个用户对每个表具有不同的权限。例如:用户 123 有权在 db_A 中撰写帖子,有权仅阅读 db_B 上的帖子,以及读取、写入的权限并删除 db_C 上的帖子。

我的问题是,我应该如何引用每个表的权限?

  • 我是否引用唯一字符串标识符(例如 post:create、post:read)并将其直接添加到每个数据库权限(例如user_id -permission_string )?

  • 或者我是否通过权限数据库上的 ID 主键引用它们(例如 user_id -permission_id)?

在我的 PHP 脚本中,当我检查权限时,我通过唯一字符串标识符进行检查。

你会推荐什么?您会使用其他结构来获取权限吗?

感谢您的时间和回答!

最佳答案

如果您有一个将 ID 映射到权限字符串的 permissions 表,那么您应该在存储用户权限的其他表中使用这些 ID。

您应该有一个 table_permissions 表,其中包含 3 列:user_IDtable_IDpermission_ID

关于php - 公共(public)表引用,Int 还是 String 标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18530600/

相关文章:

sql - 在数据库中保存动态列表的首选方法是什么?

php - Valum 的文件 uploader ?

php - WordPress 插件 : How do I avoid "tight coupling"?

php - CakePHP 忘记密码

mysql - Mysql索引表查询慢

php - OOP PHP PDO 我的第一个项目,我做得对吗?

php - 在 MySQL 中,我需要按位置检索得分最高的艺术家

php - 我如何使用php将Elasticsearch集成到mysql

mysql - Nodejs更改数据库连接运行时间

iphone - 你如何从 iphone 上的 sqlite 数据库中读取 float (REAL)?