【问题标题】:What would the tsql be for this type of database schema?这种类型的数据库模式的 tsql 是什么?
【发布时间】:2011-07-24 00:24:03
【问题描述】:

asked this question,有人建议使用这种模式。我不熟悉超级/子类型的工作方式。你能告诉我如何创建这个数据库的 TSQL 示例吗?

另一个让我难以理解的问题是,我收到了一个订单,以及按该顺序排列的一系列项目,我怎么知道一个项目是披萨、饮料还是配菜?

谢谢。

【问题讨论】:

    标签: sql-server database-design schema


    【解决方案1】:

    一种方法是使用超级键来约束子类型

    • Item 会有一个 TypeID 列(查找新表 ItemType)
    • 新 ItemType 1=比萨、2=配菜、3=饮料等
    • 对于当前 PK 列 + TypeID 的 Item 有一个新的唯一约束
    • 每个表 Pizza、Beverage、Sides 都有一个带有 CHECK 约束的 typeID 列,以将表中的条目限制为 Pizza、Sides、Beverage 之一。所以 1 用于披萨等。
    • 从 Pizza、Beverage、Sides 到 Item 的 FK 与上面的新唯一约束相同

    这也回答了你的第二个问题

    【讨论】:

      【解决方案2】:

      表格:

      ITEM_SUPER_TYPE

      • ITEM_SUPER_TYPE_ID(pk,IDENTITY)
      • 描述

      ITEM_SUB_TYPE

      • ITEM_SUB_TYPE_ID(pk,IDENTITY)
      • ITEM_SUPER_TYPE_ID(转至 ITEM_SUPER_TYPE.ITEM_SUPER_TYPE_ID)
      • 说明

      项目

      • ITEM_ID
      • ITEM_SUB_TYPE_ID(转至 ITEM_SUB_TYPE.ITEM_SUB_TYPE_ID)

      这样,超类型可以从子类型中推断出来。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 2017-03-15
      相关资源
      最近更新 更多