2

假设从此链接中的基表设计(第 3 号):

在 SQL Server 中实现多态关联的最佳方法是什么?

在此处输入图像描述

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

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

这是一个例子:

表帖子-> id | ObjectID(fk ref.Object.ObjectID) | 内容
表评论 -> id | ObjectID(fk ref.Object.ObjectID) | Posted_on_ObjectID(fk ref.Object.ObjectID) | 内容

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

4

1 回答 1

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 
于 2012-04-10T09:13:52.773 回答