定义多个has-a关系的最佳方法,其中A has-a X,B has-a X,C has-a X

时间:2019-03-25 10:28:06

标签: java database oop

我遇到的情况是A具有-X,B具有-X,C具有-X等。 我如何确保A1是否具有X1,B1 / C1 / D1无法具有X1。等等?

是否仅通过业务逻辑来确保? 我想知道最佳做法。 谢谢

2 个答案:

答案 0 :(得分:1)

此答案假设您已经具有某种关联表,该关联表将拥有者ABC与项目X等相关联。类似这样的东西:

owner | item
A     | X
B     | Y
C     | Z

如果要确保只有一个所有者可以拥有给定项目,那么您要做的就是在item列上添加唯一约束:

ALTER TABLE yourTable ADD UNIQUE (item);

答案 1 :(得分:1)

根据您的问题,您似乎有多个表(A,B,C,D等),然后是一个X表。每个主表都与X表相关,但是您要确保对与X表的所有表关系都具有唯一约束。

如果是这样,我不知道有没有一种方法可以不使用业务逻辑来完成该任务,除非您可以创建另一个表,该表位于两个表之间,该表包含唯一约束并用作所有主表和主表之间的关系表。如果要避免潜在的复杂业务逻辑编码,请使用X表。

TJ