在 CakePHP 3 中转换 table

Pivot table in CakePHP 3

一种产品在很多商店都有售,每家商店对该产品的价格都不同。

+----------------------------------+
|         SHOP_PRODUCT             | 
+----------------------------------+
| product_id (PK + FK) e.g. 9      | 
| shop_id    (PK + FK) e.g. 5      |
| url                  e.g. ggl.com|
| price                e.g. 20.00  | 
+----------------------------------+

我希望能够进入产品添加模板并为产品添加商店和价格。

如何在 CakePHP 3 中建立这些类型的关联?

最简单的方法是建立一个不同的实体作为中间体 table,在这种情况下我建议 product_prices 或者更完整的解决方案是制作一个 product_stocks 并且 product_stock 可能还有另一个 table 具有历史价格。

另一种选择是向您最初使用的中间 table 添加一个代理键,其参考信息位于此处:

https://book.cakephp.org/3.0/en/orm/associations.html#using-the-through-option

另外,按照惯例,table 的名称应为 products_stores,如下所述:

https://book.cakephp.org/3.0/en/intro/conventions.html#database-conventions