CakePHP:habtm,其联接表有一个额外字段
我正在用蛋糕烘焙工具生成模型表,我面临一个奇怪的情况 我有这些桌子:CakePHP:habtm,其联接表有一个额外字段,php,mysql,cakephp,join,cakephp-2.0,Php,Mysql,Cakephp,Join,Cakephp 2.0,我正在用蛋糕烘焙工具生成模型表,我面临一个奇怪的情况 我有这些桌子: 产品(id\U产品) guest(id\u guest) product\u客人(产品、客人、金额) 其中product\u guest表记录客人购买的产品以及购买的产品数量 现在,使用cake bake上的HABTM关系,我只能指定表product和guest之间的关系,但没有amount字段的痕迹 如何正确映射此情况以检索和添加金额?在您的情况下,HABTM不是正确的关联。你应该使用关联 根本性的变化是,您需要基于产品
产品(id\U产品)
guest(id\u guest)
product\u客人(产品、客人、金额)
product\u guest
表记录客人购买的产品以及购买的产品数量
现在,使用cake bake上的HABTM关系,我只能指定表product和guest之间的关系,但没有amount
字段的痕迹
如何正确映射此情况以检索和添加金额?在您的情况下,HABTM不是正确的关联。你应该使用关联 根本性的变化是,您需要基于产品的第三个模型 创建以下关系:
- 产品有很多产品
- 客人有很多产品
- 产品客人属于产品
- 产品客人属于客人
- 产品有很多产品
- 客人有很多产品
- 产品客人属于产品
- 产品客人属于客人
- 产品有很多产品
- 客人有很多产品
- 产品客人属于产品
- 产品客人属于客人
- 产品有很多产品
- 客人有很多产品
- 产品客人属于产品
- 产品客人属于客人
guests : id , user_name , password
这是要购买产品的客人。这是主桌
products : id , product_name , description
orders -> id , amount , user_id
这是您的产品表,包括有关产品的详细信息,如说明等。这是主表
products : id , product_name , description
orders -> id , amount , user_id
这里的订单是一张详细的表格,如谁购买了产品和价格。这是主桌
products : id , product_name , description
orders -> id , amount , user_id
那么一个订单可以有很多项目,所以
orders_products -> order_id , product_id
现在,它将包含订单id以及作为外键包含的产品。这是包含产品和订单外键的子表
这里的orders_products是HABTM,产品和订单如下
一个订单可以包含多个产品。一个产品可以是多个订单的一部分。这有意义吗?首先是表格结构错误 你应该
guests : id , user_name , password
这是要购买产品的客人。这是主桌
products : id , product_name , description
orders -> id , amount , user_id
这是您的产品表,包括有关产品的详细信息,如说明等。这是主表
products : id , product_name , description
orders -> id , amount , user_id
这里的订单是一张详细的表格,如谁购买了产品和价格。这是主桌
products : id , product_name , description
orders -> id , amount , user_id
那么一个订单可以有很多项目,所以
orders_products -> order_id , product_id
现在,它将包含订单id以及作为外键包含的产品。这是包含产品和订单外键的子表
这里的orders_products是HABTM,产品和订单如下
一个订单可以包含多个产品。一个产品可以是多个订单的一部分。这有意义吗?首先是表格结构错误 你应该
guests : id , user_name , password
这是要购买产品的客人。这是主桌
products : id , product_name , description
orders -> id , amount , user_id
这是您的产品表,包括有关产品的详细信息,如说明等。这是主表
products : id , product_name , description
orders -> id , amount , user_id
这里的订单是一张详细的表格,如谁购买了产品和价格。这是主桌
products : id , product_name , description
orders -> id , amount , user_id
那么一个订单可以有很多项目,所以
orders_products -> order_id , product_id
现在,它将包含订单id以及作为外键包含的产品。这是包含产品和订单外键的子表
这里的orders_products是HABTM,产品和订单如下
一个订单可以包含多个产品。一个产品可以是多个订单的一部分。这有意义吗?首先是表格结构错误 你应该
guests : id , user_name , password
这是要购买产品的客人。这是主桌
products : id , product_name , description
orders -> id , amount , user_id
这是您的产品表,包括有关产品的详细信息,如说明等。这是主表
products : id , product_name , description
orders -> id , amount , user_id
这里的订单是一张详细的表格,如谁购买了产品和价格。这是主桌
products : id , product_name , description
orders -> id , amount , user_id
那么一个订单可以有很多项目,所以
orders_products -> order_id , product_id
现在,它将包含订单id以及作为外键包含的产品。这是包含产品和订单外键的子表
这里的orders_products是HABTM,产品和订单如下
一个订单可以包含多个产品。一个产品可以是多个订单的一部分。这有意义吗?这样,当联接表中没有任何额外字段时,我可以使用HABTM,当我有hasMany和belongsTo时,我需要使用hasMany和belongsTo?@giozh-正确:当联接表只有其他表的键(及其主键)时,使用HABTM。当联接表有其他列时,请使用hasMany和belongsTo。因此,当联接表中没有任何额外字段时,我可以使用habmany和belongsTo;当联接表只有其他表的键(及其主键)时,我需要使用hasMany和belongsTo?@giozh-correct:当联接表只有其他表的键时,请使用habm。当联接表有额外的列时,使用hasMany和belongsTo。因此,当联接表中没有任何额外字段时,我可以使用HABTM,并且我需要使用hasM