【问题标题】:Architecture/Structure Model and DB - Laravel app架构/结构模型和数据库 - Laravel 应用程序
【发布时间】:2015-12-02 00:27:42
【问题描述】:

我有一个记录,它可能是 4 种类型之一。根据其类型,它可以包含给定类型的子记录。例如:“Travel Cost”类型的记录可以包含“Gasoline Cost”或“Public Transport Cost”的子记录,“MealAcco”类型的记录可以包含“Meal Cost”或“Accommodation Cost”的子记录

我应该如何在对象模型和相邻的数据库表中表示它。

我使用 Laravel 框架 - 如果它很重要...

非常感谢您的帮助。 :)

【问题讨论】:

    标签: database laravel architecture model


    【解决方案1】:

    您可以使用多态关系。

    http://laravel.com/docs/5.1/eloquent-relationships#polymorphic-relations

    您需要指定是需要一对一还是一对多。

    例如,每个 TravelCost 是否可以超过 Gasoline Cost?实际上,汽油成本不是更多的成本类型吗?

    你可以有一个travelcosts表(模型是Travelcost

    在这种情况下,在表的列中,您的 travelcosts 表中有两列,即 travelcostable_idtravelcostable_type,它们链接到相应的表和 id . 例如,travelcostable_type 为 'gasoline',而 travelcostable_id 为 3,即 Gasoline 模型表的第三条记录。

    【讨论】:

      猜你喜欢
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      相关资源
      最近更新 更多