可以说我有一个实体A和实体B。关系是1:1。如果我删除A然后B也应该删除。我已经设置了级联删除规则。现在让我们假设我添加另一个实体C,它与1:1到B有关系。核心数据如何纠正设计
我不知道如何正确处理这个问题。如果A和C具有相同的B它应该是相同的实例B?或者我应该复制条目?如果它是相同的删除A不能删除B如果C有一个引用它。
此外,我怎样才能强制执行这种1:1关系A和B?在我创建实体的那一刻,我也创建了一个实体,不检查它是否已经在数据库中。这不会失败,并导致重复B。
编辑:为了更好地理解我想要实现:
一个必须有一个乙。 C也必须始终有一个B。
例如让我们假设我有一个实体商店(B)和一个实体收藏(A)。在未来,我可能会添加另一个也会使用Shop的实体。因此,如果用户创建收藏夹,他会给它一个名称和一个店。现在如果我不检查这个店已经在数据库中,我会创建另一个。另一方面,如果我允许重复我可以使用级联删除规则,一定不要害怕,如果我删除一个收藏夹,它会离开另一个收藏一个空的店。
我感觉有点失落,我不确定这种情况下最佳做法是什么。任何帮助都会增加。
唯一的好答案需要理解数据代表什么以及如何使用它。有重复的** B **有意义吗?也许,也许不是,答案取决于** B **实际代表什么以及它与** C **的关系。 –
编辑了这个问题。我希望现在能更清楚我想实现的目标。 – kukudas