我有一个记录,可能是4种类型之一。根据其类型,它可以包含给定类型的子记录。例如:类型记录"旅行费用"可以包含"汽油成本"的子记录或"公共交通费用"类型记录" MealAcco"可以包含"膳食成本"的子记录或者"住宿费用"
我应该如何在对象模型和相邻的数据库表中表示这一点。
我使用Laravel框架 - 如果它很重要......
非常感谢您的帮助。 :)
答案 0 :(得分:1)
您可以使用多态关系。
http://laravel.com/docs/5.1/eloquent-relationships#polymorphic-relations
您需要指定是否需要一对一或一对多。
例如,每个TravelCost可以超过汽油成本吗?实际上,汽油成本是不是更多的成本类型?
您可以拥有 travelcosts 表格(该模型将 Travelcost )
在这种情况下,您将在表格的列中包含travelcosts表中的两列,即 travelcostable_id 和 travelcostable_type ,它们链接到相应的表和ID 。 例如, travelcostable_type 将为“汽油”,而 travelcostable_id 将为3,是汽油模型表的第三条记录。