用户,类型和组

时间:2014-05-28 13:09:03

标签: sql

我只是想知道是否有更好的方法。

我在一个系统中有用户。但是,类型很少。具有类型的要点是每种类型具有与其相关的不同附加数据。例如,我有用户类型:学生,教授,管理人员和员工。学生有一些教授没有的额外信息等。

另一方面,我有团体。例如,每个主题都有一个组。所以教授和学生可以在这个主题的同一组。

我的问题是,这种方法是否足以构建数据?最好不要有不同类型的用户,而是拥有用户组的数据,这样每个用户都可以属于一个或多个学生组,根据这个,他们可以拥有更具体的数据?

请帮我决定。

P.S。所以现在我有这个表:

users (with type field)
students
professors
management
staff
groups (many groups, various and base for ACL)

1 个答案:

答案 0 :(得分:0)

不可能对这些抽象的想法给出具体的答案。正确的设计完全取决于您正在设计的信息系统的细节。

但是,一般来说,

我定义了UserType 实体,其中包含IdName 属性并包含一行定义User的每个类别

User 实体 Id以及User的每个的每个公共属性 }。 User 实体将拥有UserType的外键。

然后User的每个类别的实体:StudentProfessor等。每个类别实体都有外国人User的关键。每个类别实体都会包含特定于其类别属性

可能在您的组织中可能存在更深层次的层次结构。例如,您可能需要一个名为User的{​​{1}}类别分类本身,可能还需要LecturerDoctorialPostGraduate等等。这个想法。

Professor 实体会有Group 关系将多个GroupUser与多个Group相关联。


还有其他方法可以做到这一点,但这种方法可以对您的数据进行规范化,并有助于减少冗余,并得到现代RDBMS的良好支持。