我正在寻找解决这个数据库设计问题的最佳方法。我想我找到了一些很好的方法,但我不知道这是否是最好的方法。如果这对您意味着什么,我正在使用 CakePHP。
我的数据库是为音乐课制作的。我有所有人,无论他们是父母、学生、老师、管理人员还是其他任何人,都在下面列出的称为人员的表格中:
People
id first_name last_name email created modified
现在我开始遇到的问题是如何将一个人识别为老师、学生家长等。对我来说,为每个组设置一个单独的表是有意义的。例如
Teachers
id person_id
Students
id person_id
Payers
id person_id
这样理论上老师也可以是学生。“付款人”,即为课程付费的人,也可能是学生,名单还在继续。
现在我还需要知道一个人和一个学生之间的关系。所以我会有一个像这样的单独表格:
Relationships:
id person_id student_id type
“类型”可以是母亲、父亲、法定监护人、看护人、阿姨、祖母等。这种设计对我来说很有意义,但同时它似乎需要相当多的工作和表格来描述看起来应该的东西更容易描述。有一个更好的方法吗?我不断地猜测自己,并认为拥有一张全新的桌子只是为了将一个人标记为学生或老师,或者以某种方式似乎不太过分。