0

我在确定我的第一个 CakePHP 项目的关系时遇到了问题。我正在尝试建立一个背包装备清单管理系统。这是我的表:

齿轮 -每个齿轮项目都属于一个类别,但可以在许多齿轮列表中,但是用户特定的。

类别 -上述装备项目的类别。类别是唯一的。

齿轮列表 -每个齿轮列表可以分配给许多不同的行程,并且是用户特定的。项目添加到此列表后,将无法再次添加。

旅行 -每次旅行都有一个装备列表。每一次旅行都是独一无二的。

用户 -每个用户都有自己的物品、类别、装备清单和旅行。

我的问题,我应该为齿轮列表设置什么模型,我应该使用什么关系?是否应该有一个包含两个表中数据的齿轮列表项表?如何将多个项目添加到数据库中的单个齿轮列表中?我需要在同一行中存储多个 item_id 吗?

我能想到的最接近的例子是购物车。您有待售物品,并且您有一个购物车(装备清单)。您将项目添加到购物车,然后购买购物车(将其分配给旅行)。

4

1 回答 1

0

将同一张表的多个外键存储在一条记录上通常是错误的做法。

对我来说,听起来您正在寻找多对多关系,即hasAndBelongsToMany关联,GearList HABTM GearItem反之亦然(如果您想GearItem::find()返回关联的GearList记录)。

关联存储在单独的连接表中,这样 aGearItem可以分配给许多不同GearList的 ,而 aGearList可以有许多不同的GearItem

另请参阅保存相关模型数据 (HABTM)

于 2013-09-09T14:44:25.633 回答