【问题标题】:Database Schema for Related Object Types相关对象类型的数据库模式
【发布时间】:2013-11-30 15:26:10
【问题描述】:

背景简介 - 在一个非营利性网站上工作,他们可以在其中发布 3 件事:

  1. 状态更新
  2. 需要
  3. 活动

这些帖子类型中的每一个都可以有 1 个或多个标签,例如无家可归、饥饿意识等。

我的问题是我应该如何设计架构以最好地处理这个问题。这是我到目前为止所想的伪模式:

Org_Post 表

  • 身份证,PK
  • user_id,FK(谁发布的?)
  • post_type_id,FK(这是什么类型的帖子?状态、需求或事件)
  • post_object_id,FK(id 可以来自 3 个表之一,post_status、post_need、post_event)

Org_Post_Tags 表

  • 身份证,PK
  • org_post_id, FK(此标签与哪个帖子相关联)
  • tag_id,FK(哪个标签)

Post_Status 表

  • 身份证,PK
  • 状态

Post_Need 表

  • 身份证,PK
  • 需要标题
  • 需要日期
  • 需要数量
  • need_details

Post_Event 表

  • 身份证,PK
  • event_start_date
  • event_start_time
  • event_end_date
  • event_end_time
  • event_location
  • event_details
  • event_title

我是否过于复杂了?我是否遗漏了一些会使查询此数据成为噩梦的东西?

一如既往,提前致谢!

【问题讨论】:

    标签: sql database database-design data-structures schema


    【解决方案1】:

    我看到一个问题 - 您不能在 Org_Post.post_object_id 上放置外键,因为该字段可能引用 3 个表中的任何一个。

    除此之外,您的设计看起来像是相当标准的方法。

    针对上述问题,我建议如下:

    Org_Post 表

    • 身份证,PK
    • user_id, FK

    Org_Post_Tags 表

    • ...

    Post_Status 表

    • 身份证,PK
    • ...
    • ord_post_id,FK

    Post_Need 表

    • 身份证,PK
    • ...
    • ord_post_id,FK

    Post_Event 表

    • 身份证,PK
    • ...
    • ord_post_id,FK

    【讨论】:

      猜你喜欢
      • 2013-03-12
      • 1970-01-01
      • 2011-01-10
      • 2021-04-15
      • 1970-01-01
      • 2017-01-13
      • 1970-01-01
      • 2013-10-04
      • 2012-04-05
      相关资源
      最近更新 更多