3
如何在PostgreSQL(或SQL)中实现业务逻辑权限?
假设我有一个项目表: CREATE TABLE items ( item serial PRIMARY KEY, ... ); 现在,我要为每个项目引入“权限”的概念(请注意,这里我不是在谈论数据库访问权限,而是该项目的业务逻辑权限)。每个项目都具有默认权限以及每个用户的权限,这些权限可能会覆盖默认权限。 我试图考虑实现此问题的几种方法,并提出了以下解决方案,但是我不确定哪个是最好的,以及为什么: 1)布尔解 为每个权限使用一个布尔列: CREATE TABLE items ( item serial PRIMARY KEY, can_change_description boolean NOT NULL, can_change_price boolean NOT NULL, can_delete_item_from_store boolean NOT NULL, ... ); CREATE TABLE item_per_user_permissions ( item int NOT NULL REFERENCES items(item), user int NOT …
16
postgresql
enum