使用1个对象来表示2个模型

时间:2012-12-03 21:45:43

标签: php oop yii

我们正在构建一个核心购物车,我们公司将使用它作为我们将构建的多个购物车的基础。这些是高度专业化的,因此不同的产品类型将需要他们自己的数据表。

例如,对于销售标签的购物车......

产品 - id | type_id | created

标签 - id | product_id | x | y | z

我们正在努力解决如何构建对象的问题。我们希望以编程方式仅与 Label 类进行交互,并使数据“拆分”,以便在两个表之间进行说明。我们抛出的一个想法是创建一个视图来用于查询,然后只是覆盖对象的save()方法,以实际与每个表的setter / save功能进行交互。

有没有人完成这项工作或者至少遇到过类似的挑战?

更新:当然这引出了一个问题......是否存在两个表可能具有相同列名的情况?如果是这样,如何处理它。

2 个答案:

答案 0 :(得分:0)

您可以将名称/值对用于专用列。如果“name”部分与列名一致,则可以使用generalized setter / getter。

答案 1 :(得分:0)

产品是相关表,因此您可以通过关系与其进行交互,例如$labelModel->product。所以你有每个表的模型,如yii所示。如果您将功能放在LabelbeforeSave()和其他方法上,则只能与afterSave()模型进行互动。