0

私はこのようなデータベース設定をしています (これが最適な設定ではないことはわかっていますが、それを変更する力がありません :-(

基本的に、ユーザーには 3 つのレベルがあります - 管理者 - マネージャー - スタッフ

いくつかの注意事項: - スタッフの各メンバーは部門に属しています - スタッフの logon_code がマネージャ テーブルに表示されている場合、そのスタッフはマネージャです。彼らは管理者です

これに対して ACL/Auth を設定するにはどうすればよいでしょうか。何か案は?

CREATE TABLE tblStaff( StaffIDint(11) NOT NULL auto_increment, dept_idvarchar(5) デフォルト NULL, logon_codechar(10) NOT NULL, forenamechar(50) NOT NULL, surnamechar(50) NOT NULL, PRIMARY KEY ( StaffID), ) ;

CREATE TABLE tblManager( ManagerIDvarchar(15) NOT NULL, logon_codevarchar(15) NOT NULL, dept_idvarchar(5) NOT NULL, SystemAdmintinyint(1) unsigned default NULL, PRIMARY KEY ( ManagerID) ) ;

CREATE TABLE tblDepartment( dept_idvarchar(5) NOT NULL, sect_idvarchar(50) デフォルト NULL, subsect_idvarchar(50) デフォルト NULL, sect_namevarchar(50) デフォルト NULL, sect_abbrvarchar(50) デフォルト NULL, subsect_namevarchar(50) デフォルト NULL, PRIMARY KEY ( dept_id) ) ;

4

1 に答える 1

1

正直なところ、あなたの例で tblStaff と tblManager を分離する必要がある理由がわかりません。彼らはみな「従業員」、つまり何らかの意味での「スタッフ」ではないでしょうか。

なぜだめですか:

テーブル tblUsers を作成します (UserID、logon_code、dept_id、SystemAdmin、firstname、lastname など)

結局のところ、彼らが「スタッフ」であるか「マネージャー」であるかに関係なく、彼らはアプリケーションの「ユーザー」になります。

さらに、それらをさらに分離する必要がある場合は、すべてのユーザーの役割を決定する別のフィールド (user_level_id など) を追加できます。その後、Auth/ACL はかなり簡単になります。

于 2009-06-04T06:56:20.693 に答える