在MySQL中跨链接表实现UNIQUE

在MySQL中跨链接表实现UNIQUE,第1张

概述用户是一个人,一个人有一个公司-用户->人是一对一的,人->公司是多对一的.person_id在USER表中为FK.company_id在PERSON表中为FK.一个人可能不是用户,但用户始终是一个人.如果company_id在用户表中,则可以基于username和company_id创建一个唯一键,但是不是,如果是,它将是数据的重复.目前,我正在RoseD

用户是一个人,一个人有一个公司-用户->人是一对一的,人->公司是多对一的.

person_ID在USER表中为FK.
company_ID在PERSON表中为FK.

一个人可能不是用户,但用户始终是一个人.

如果company_ID在用户表中,则可以基于username和company_ID创建一个唯一键,但是不是,如果是,它将是数据的重复.

目前,我正在RoseDB Manager包装器代码中实现唯一的用户名/公司ID规则,但感觉不对.如果可以的话,我想在数据库级别定义唯一规则,但是我不确定如何实现.我尝试过这样的事情:

alter table user add unique(used_ID,person.company_ID);

但这不起作用.

通过阅读文档,我找不到一个可以完成几乎所有相似 *** 作的示例.我是在尝试添加不存在的功能,还是在这里缺少某些功能?

最佳答案好吧,没有简单的事情可以满足您的需求.但是,您可以使用BEFORE INSERT和BEFORE UPDATE triggers强制实施所需的约束.有关如何处理使触发器失败的信息,请参见this SO question about raising MySQL errors. 总结

以上是内存溢出为你收集整理的在MySQL中跨链接表实现UNIQUE 全部内容,希望文章能够帮你解决在MySQL中跨链接表实现UNIQUE 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1165457.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存