好的,这就是我面临的问题,我愿意完成架构的重新设计,但我认为我基本上走在正确的轨道上。
表 1 - 教师
- ID - (Auto increment int)
- Name
- employee ID
- ADDITIONAL COLUMNS NOT IMPORTANT TO THIS QUESTION
- account_id --> FK relation to (Accounts)
表 2 - 学生
- ID - (Auto increment int)
- Name
- student ID
- ADDITIONAL COLUMNS NOT IMPORTANT TO THIS QUESTION
- account_id --> FK relation to (Accounts)
表 3 - 账户
- ID - (Auto increment int)
- USERNAME
- PASSWORD
- TYPE (Instructor OR Student)
- person_id --> FK relation to (Students(ID)) & (Instructors(ID))
所以我目前的逻辑是这样的
- 插入一个人(学生或教师)
- 触发器根据他们的名字插入一个帐户
- TRIGGER 使用 account_id 更新学生或教师记录
出现问题是因为 mysql 不允许递归触发器,因为这可能是非常糟糕的 AKA 插入 table1 然后在 table2 插入 table1 时触发。
但我不明白为什么我通过触发器更新表 1 有问题,因为当它收到更新时没有触发器等待做某事。
我希望系统像这样运行的原因是因为教师和学生都将有一个中央登录,而且我知道我可以对每个表进行两次 mysql 调用我希望能够只对帐户表。
我需要从人员表(教师/学生)到帐户表的关系的原因是,当我删除教师或学生时,随之而来的帐户也会被删除。
提前致谢!