gpt4 book ai didi

mysql - 混合多态关联和层次结构的最佳方式?

转载 作者:搜寻专家 更新时间:2023-10-30 20:59:10 26 4
gpt4 key购买 nike

假设来自此链接的基表设计(编号 3):

What is the best way to implement Polymorphic Association in SQL Server?

enter image description here

我想为每个 object.ObjectID 添加(到对象表)一个 ObjectType 和一个 parentObjectID。我需要这个,因为我有一些对象是其他对象的 child 。这些子对象只能有不同类型的子对象(不同于自身类型)。

那么将表的名称放在 objectType 列中是个好主意吗?将某些架构存储在表中可能不利于安全性……我可以使用其他任何方法吗?

这是一个例子:

表格帖子-> id | ObjectID(fk ref.Object.ObjectID)|内容
表格注释 -> id | ObjectID(fk ref.Object.ObjectID)| Posted_on_ObjectID(fk ref.Object.ObjectID)|内容

基本上帖子和评论将是 Object super table 中的唯一实体。但是因为只能对帖子实体进行评论而不能对评论实体进行评论,所以我必须为每个实体(ObjectID)存储类型。

最佳答案

我认为您可以通过定义一个自外键在单个表中执行此操作。

Objects | id | parent_object_id | name
--------+----+------------------+-----------------------------
1 | NULL | Object1
2 | NULL | Object2
3 | NULL | Object3
4 | 1 | Child Object of 1
5 | 2 | Child Object of 2
6 | 3 | Child Object of 3
7 | 4 | Sub Child Object of 1 -> 4
8 | 5 | Sub Child Object of 2 -> 5

关于mysql - 混合多态关联和层次结构的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10085625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com