我目前正在使用Code Igniter和Datamapper ORM处理应用程序,我正在尝试将数据保存在数据库中。我有两张桌子,彼此之间有很多很多关系。例如:ShoeDesigns和ShoePieces。我还想在ShoeDesigns和ShoePieces之间的连接表中保存一些数据,即ShoeDesigns_ShoePieces。我试图环顾四周,但没有运气。
我只是想知道是否可以实际执行此操作,是否可以在一次保存调用中执行此操作,还是必须在多次保存调用中执行此操作?
谢谢你们。
答案 0 :(得分:2)
如果您向ShoeDesigns_ShoePieces
添加了与ShoeDesigns
和ShoePieces
之间关系不同的数据,那么您将违反ORM概念。 ShoeDesigns_ShoePieces
将不再仅建立关系模型,但它将是实体和关系之间的混合。
如果您的某些属性附加到ShoeDesigns
和ShoePieces
之间的关系,则需要执行此操作;这意味着“关系”实际上是一个实体。
我们称之为ShoeAssemblyPlan
。然后你有:
ShoeDesigns
和ShoeAssemblyPlan
ShoeAssemblyPlan
和ShoePieces
(这种关系也可以是多对一的。)
您在设计与作品之间的旧关系现在通过一个装配计划实现,您可以附加所需的属性。
例如,你可以有一个“胶水堆叠设计到四件套”组装计划和“Stitch Formal Design to Four-Piece Set”装配计划;并且您可能会有与每个计划关联的不同成本和提前期。