多个父对象的注释

我正在学习在Yii PHP框架中构建Web应用程序,但我认为我的问题一般适用于Web应用程序。

我想知道如何为与不同类型的父对象(即照片或帖子)相关的注释构建数据库表。

照片和帖子本质上不同,不会坐在同一张桌子上。 然而,对这些对象的评论在大多数情况下是相同的格式。

我的问题有两点,是否可以将多个父对象的注释放入同一个表中? [对我来说似乎是自然的解决方案,但我不知道如何用外键/主键等来处理这个问题。我认为它还需要一个指向父对象类型的关键...?]

其次,如果可以将这些注释放入同一个表中,那么这样做效率高吗?对每个父对象都有一个注释表更有效吗?

在此先感谢,希望对某人来说这是一个足够有趣的话题。

干杯,

缺口


另一种选择是有一个帖子表,所有帖子都与之相关(不管类型)。 因此,无论是照片还是普通帖子,它都会在此表中为它创建一条记录。

根据内容类型的不同,您可以在此表中存储照片和普通帖子(每个可选的字段,例如:照片,photo_type和post_content可以是可选的,具体取决于创建的类型(这将是一个很好的机会)了解Yii模型验证场景)。

所以你发布表格会看起来像这样:

  • ID
  • POST_CONTENT
  • 照片
  • photo_type
  • 等等...
  • 如果您选择不在同一张表中存储两张照片,则可以为一张照片添加一张表格,并将一张张图标与post_id关联

    这样,你可以有一个与post_id相关的注释表(不管是否是正确的路线)。


    我会以它自己的表格为模型评论。 评论表将有一个PhotoId和PostId列。 这些是允许空值的外键。 然后,数据库检查约束将确保PhotoId和PostId中的某一个为空。 即每条评论都附在一个父母身上。


    我可以建议3个表格结构

    表:[Entity_Types](列出所有对象标题,例如照片,帖子)例如:PK:1001,“照片”

    表:[照片]示例:PK:2001,“我的第一张照片标题”PK:2002,“我的第二张照片标题”

    表:[评论]示例:PK:3001,“我的第一张评论我的第一张照片”,FK:1001,FK:2001 PK:3002,“我的第二张评论”,FK:1001,FK:2001 PK :3003,“我的第一张评论给我的第二张照片”,FK:1001,FK:2002

    链接地址: http://www.djcxy.com/p/70625.html

    上一篇: Comments for multiple parent objects

    下一篇: Database design for a recursive relationship