一个用户是一个人,一个人有一个公司-用户->人是一对一的,人->公司是多对一的。
person_id 是 USER 表中的 FK。company_id 是 PERSON 表中的 FK。
PERSON 可能不是 USER,但 USER 始终是 PERSON。
如果 company_id 在 user 表中,我可以根据用户名和 company_id 创建一个唯一键,但它不是,如果是,它将是数据的重复。
目前,我正在 RoseDB 管理器包装代码中实现唯一用户名/公司 ID 规则,但感觉不对。如果可以的话,我想在数据库级别定义唯一规则,但我不确定如何处理它。我试过这样的事情:
alter table user add unique(used_id,person.company_id);
但这不起作用。
通过阅读文档,我找不到任何类似的示例。我是在尝试添加不存在的功能,还是在这里遗漏了什么?