CREATE TABLE role
(
role NVARCHAR(50) NOT NULL PRIMARY KEY,
create BIT NOT NULL,
read BIT NOT NULL,
update BIT NOT NULL,
delete BIT NOT NULL
)
CREATE TABLE item
(
id INT NOT NULL PRIMARY KEY,
name NVARCHAR(50) NOT NULL,
id_parent INT,
CONSTRAINT FK_item_item FOREIGN KEY(id_parent) REFERENCES item(id)
)
CREATE TABLE user
(
id INT NOT NULL PRIMARY KEY,
adUserName NVARCHAR(50) NOT NULL,
role NVARCHAR(50) NOT NULL,
CONSTRAINT FK_user_role FOREIGN KEY(role) REFERENCES role(role)
)
CREATE TABLE user_item_rights
(
id_user INT NOT NULL,
id_item INT NOT NULL,
create BIT NOT NULL,
read BIT NOT NULL,
update BIT NOT NULL,
delete BIT NOT NULL,
CONSTRAINT PK_user_item_rights PRIMARY KEY(id_user,id_item),
CONSTRAINT FK_user_item_rights_user FOREIGN KEY(id_user) REFERENCES user(id),
CONSTRAINT FK_user_item_rights_item FOREIGN KEY(id_item) REFERENCES item(id)
)
這應該給你的,你怎麼能實現這個想法。你也可以將它翻譯成課程。你也可以實現CRUD繼承等等,或者定義一個role_item_right表。 在我的想法中,user_item_rights覆蓋角色中的默認設置。
你使用的數據庫我假設?你如何管理它?先編碼還是生成? – Frederiek
尚未決定,我剛剛開始。我將使用EF和MS SQL,但我不知道它是否會先代碼或生成... – Ians
然後我要給你一個示例SQL代碼,我將如何將這些東西保存在數據庫中 – Frederiek