2

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

我有一些具有相同结构的数据库(比如说 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 脚本中,当我检查权限时,我会检查唯一的字符串标识符。

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

感谢您的时间和答案!

4

2 回答 2

3

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

您应该有一个table_permissions包含 3 列的表格:user_IDtable_IDpermission_ID

于 2013-08-30T10:35:59.630 回答
0

如果要保持性能,索引/引用应始终为整数类型

于 2013-08-31T21:28:23.853 回答