CakePHP:habtm,连接表有一个额外的字段

时间:2015-02-23 14:41:11

标签: php mysql cakephp join cakephp-2.0

我正在生成带有蛋糕烘焙实用程序的模型表,我正面临一个奇怪的情况。

我有这些表格:

  • product(id_product)
  • guest(id_guest)
  • product_guest(product, guest, amount)

其中product_guest表会跟踪客人购买的产品以及购买的产品数量。

现在,通过HABTM关于蛋糕烘焙的关系,我只能指定表product和guest之间的关系,但是没有amount字段的痕迹。

如何正确映射此情况以检索和添加amount

2 个答案:

答案 0 :(得分:2)

在您的情况下,HABTM不是正确的关联使用。您应该使用hasMany through关联。

根本的变化是您需要基于product_guest表的第三个模型。

创建这些关系:

  • 产品有很多产品访客
  • Guest hasMany ProductGuest
  • ProductGuest belongsTo产品
  • ProductGuest belongsTo Guest

答案 1 :(得分:0)

错误的表格结构首先

你应该

guests : id , user_name , password 

这是购买产品的客人。这是主表。

products : id , product_name , description 

这是您的产品表,其中包含有关描述等产品的详细信息。这是主表。

orders -> id , amount , user_id

此处的订单是一个表格,其中包含购买产品和价格的详细信息。这是主表。

然后一个订单可以有很多项目

orders_products ->  order_id , product_id 

现在这将包含订单ID以及哪个产品作为外键包含在内。这是包含产品和订单的外键的子表。

此处orders_products是HABTM,产品和订单为

一个订单可以包含多个产品。一个产品可以是多个订单的一部分。它有意义吗?