假设此链接的基表设计(第3号):
What is the best way to implement Polymorphic Association in SQL Server?
我想为每个ObjectType
添加parentObjectID
和object.ObjectID
(对象表)。我需要这个,因为我有其他对象的子对象。这些子对象只能具有不同类型的子对象(与自身类型不同)。
将表格的名称放在objectType
列中是个好主意吗?这可能不利于安全性将一些模式存储在表中......我可以使用任何其他方法吗?
以下是一个例子:
表格帖子 - > id | ObjectID(fk ref.Object.ObjectID)|内容
表评论 - > id | ObjectID(fk ref.Object.ObjectID)| Posted_on_ObjectID(fk ref.Object.ObjectID)|内容
基本上帖子和评论将是Object超级表中的唯一实体。但是因为评论只能用于帖子实体,而不能用于评论实体,我必须存储每个实体的类型(ObjectID)。
答案 0 :(得分:0)
我认为您可以通过定义自己的外键在单个表中执行此操作。
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