Datamapper ORM将数据保存在连接表中

时间:2012-11-14 20:46:34

标签: php mysql codeigniter codeigniter-datamapper

我目前正在使用Code Igniter和Datamapper ORM处理应用程序,我正在尝试将数据保存在数据库中。我有两张桌子,彼此之间有很多很多关系。例如:ShoeDesigns和ShoePieces。我还想在ShoeDesigns和ShoePieces之间的连接表中保存一些数据,即ShoeDesigns_ShoePieces。我试图环顾四周,但没有运气。

我只是想知道是否可以实际执行此操作,是否可以在一次保存调用中执行此操作,还是必须在多次保存调用中执行此操作?

谢谢你们。

1 个答案:

答案 0 :(得分:2)

如果您向ShoeDesigns_ShoePieces添加了与ShoeDesignsShoePieces之间关系不同的数据,那么您将违反ORM概念。 ShoeDesigns_ShoePieces将不再建立关系模型,但它将是实体和关系之间的混合。

如果您的某些属性附加到ShoeDesignsShoePieces之间的关系,则需要执行此操作;这意味着“关系”实际上是一个实体

我们称之为ShoeAssemblyPlan。然后你有:

  • ShoeDesignsShoeAssemblyPlan
  • 之间的多对多关系
  • ShoeAssemblyPlanShoePieces
  • 之间的多对多关系

(这种关系也可以是多对一的。)

您在设计与作品之间的旧关系现在通过一个装配计划实现,您可以附加所需的属性。

例如,你可以有一个“胶水堆叠设计到四件套”组装计划和“Stitch Formal Design to Four-Piece Set”装配计划;并且您可能会有与每个计划关联的不同成本和提前期。