【问题标题】:SQL - Most efficient way to organize Multiple Post/Record typesSQL - 组织多个 Post/Record 类型的最有效方式
【发布时间】:2015-01-21 12:01:28
【问题描述】:

我目前正在计划一个具有 3 种记录类型的应用程序。目前我正计划为每种类型创建一个表,因为每种类型包含不同的信息,但我正在考虑一种更好的方法,因为每种类型都有一些基本信息。

类型(目前是模型)是事件、酒店、商店。它们都共享一些基本信息,如标题、描述、user_id、category_id、时间等。

我正在考虑的是创建一个名为“Places”的表,并使用“类型”列而不是每个类型的模型创建记录,然后为包含可选/的元表添加一个 meta_id每种记录类型的额外信息。

那么哪种方法会更好呢?我应该将类型保存在单独的表和模型中,以便完全隔离每种类型吗?

【问题讨论】:

    标签: php mysql laravel database-design eloquent


    【解决方案1】:

    更好的方法是将类型保存在单独的表中。这将帮助您添加多个信息。

    【讨论】:

      【解决方案2】:

      我将重新解释您的问题如下:何时将不同类型建模为某些常见超类型的不同子类型更好?什么时候最好将它们简单地视为代表不同实体的不同类型?

      答案是视情况而定。如果你在做对象建模,你想出的每种类型都是通用类型“对象”的子类型。但是,如果您在进行 ER 建模或关系数据建模,那么该概念可能有用也可能无用,具体取决于手头的案例。

      在您的情况下,活动、酒店和商店的共同特征是如此微不足道,以至于将它们组合成一些常见超类型的专业化似乎给您带来的收益低于成本。至少乍一看是这样的。

      这取决于您的设计目标。你想达到什么目的?通常,设计人员追求多个目标,其中包括速度、灵活性、易用性和易于编程。这些目标对您来说有多重要?

      【讨论】:

        猜你喜欢
        • 2013-08-25
        • 2020-12-23
        • 1970-01-01
        • 2011-02-01
        • 1970-01-01
        • 2021-07-24
        • 1970-01-01
        • 2019-09-24
        • 2011-02-22
        相关资源
        最近更新 更多