考慮以下情形(有點做作,但比真實的情景,我掙扎不那麼複雜):SQL Server查詢:如何根據條件返回一組值?
與在線文件管理系統一所大學要限制其教授可以看到哪些文件。一些教授可以看到屬於任何部門的文件,但有些只能看到屬於特定部門的文件。
這裏的模式:
create table Professors (
ProfessorId int primary key,
ProfessorName varchar(50)
);
create table Departments (
DepartmentId int primary key,
DepartmentName varchar(50)
);
create table ProfessorDepartments (
ProfessorId int,
DepartmentId int
);
insert into Professors values (1, 'Professor A'), (2, 'Professor B');
insert into Departments values (1, 'Chemistry'), (2, 'Computer Science'), (3, 'Math'), (4, 'Physics');
insert into ProfessorDepartments values (1,2), (1,3);
而這裏的棘手的部分:具有不受限制的訪問教授將不必在ProfessorDepartments表列出的任何部門。 (這樣,教授將自動進入任何新部門。)
如何獲得特定教授允許的部門列表?如果教授訪問受限,則該列表需要來自教授部門表;如果教授訪問權限不夠,則需要來自部門表。
然後,如果添加了新教授的是,他將有無限制的訪問,因爲是不是在其他表吧? – 2012-02-07 17:14:05
@aF。對。默認行爲是給教授不受限制的訪問權限。 – MCS 2012-02-07 17:14:55
@MCS - 恕我直言,我覺得你這樣做是落後的,你應該是隱式授予訪問,而不是刪除它。 – 2012-02-07 17:27:03