我只是想知道是否有更好的方法。
我在一个系统中有用户。但是,类型很少。具有类型的要点是每种类型具有与其相关的不同附加数据。例如,我有用户类型:学生,教授,管理人员和员工。学生有一些教授没有的额外信息等。
另一方面,我有团体。例如,每个主题都有一个组。所以教授和学生可以在这个主题的同一组。
我的问题是,这种方法是否足以构建数据?最好不要有不同类型的用户,而是拥有用户组的数据,这样每个用户都可以属于一个或多个学生组,根据这个,他们可以拥有更具体的数据?
请帮我决定。
P.S。所以现在我有这个表:
users (with type field)
students
professors
management
staff
groups (many groups, various and base for ACL)
答案 0 :(得分:0)
不可能对这些抽象的想法给出具体的答案。正确的设计完全取决于您正在设计的信息系统的细节。
但是,一般来说,
我定义了UserType
实体,其中包含Id
和Name
属性并包含一行定义User
的每个类别。
User
实体 Id
以及User
的每个类的每个公共属性 }。 User
实体将拥有UserType
的外键。
然后User
的每个类别的实体:Student
,Professor
等。每个类别实体都有外国人User
的关键。每个类别实体都会包含特定于其类别的属性。
可能在您的组织中可能存在更深层次的层次结构。例如,您可能需要一个名为User
的{{1}}类别分类本身,可能还需要Lecturer
,DoctorialPostGraduate
等等。这个想法。
Professor
实体会有Group
关系将多个GroupUser
与多个Group
相关联。
还有其他方法可以做到这一点,但这种方法可以对您的数据进行规范化,并有助于减少冗余,并得到现代RDBMS的良好支持。