假设您要转换以下形式的关系:
AsyncTask
或者用乌鸦的符号表示:
标准架构转换是:
Entity1 (N,0) ------ (1,M) Entity2
(这里粗体表示主键和斜体外键)。
但是我没有看到如何实现这样一个事实:根据关系基数,必须至少有一个与Entity1相关的Entity2。有没有办法在数据库模式中包含此要求?
谢谢和最诚挚的问候。
答案 0 :(得分:0)
不,您不能指定至少有一个实体在关系的多方面相关。至少据我所知。
您可以实现CHECK约束,但由于多种原因(性能/可维护性),我不会这样做。您可以使用触发器/存储过程来确保始终至少有一个。如果这是合适的话,这取决于一般的软件设计。
通常,您可以使用任何编程语言创建一些业务层,以确保数据一致。它关注需要商业知识的更复杂的案例。数据库约束(如NOT NULL)相当简单,无法表达实际的业务一致性。他们只检查最重要和最基本的一致性。您的案例似乎也是基本的,但它已经超出了范围。