代码之家  ›  专栏  ›  技术社区  ›  Chris

yii框架多对多关系

  •  11
  • Chris  · 技术社区  · 15 年前

    yii框架中保存和更新多对多关系的方法是什么?

    6 回复  |  直到 12 年前
        2
  •  3
  •   pestaa    15 年前

    除非在两个主表之间为表创建模型,否则唯一的选择是使用dao(database access object)并将其指定为sqls。

    看看blog demo是如何完成这项任务的。

        3
  •  3
  •   Orlymee    12 年前

    使用 MANY_MANY 关系类型以设置模型之间的多对多连接(需要关联表将多对多关系分解为一对多关系) 现在可以使用活动记录的所有关系函数

    Yii Framework - The Definitive Guide to Yii: Working with Databases-Relational Active Record

        4
  •  1
  •   Orlymee    12 年前

    下面的分机可以满足您的要求… Yii Framework - Extension: cadvancedbehavior

    需要注意的一点是:每次更新时,扩展都会清除以前的所有记录并创建新记录。所以当中间表包含外键以外的额外数据时,我不会使用它。

        5
  •  0
  •   Praveen Puglia    12 年前

    您可以在mysql级别..通过转到phpmyadmin中每个表下的relational视图并提供必要的关系条件..并在关系内部的model类中使用many-many..

        6
  •  0
  •   Alexander Palamarchuk    12 年前

    这个问题太普遍了。

    通常,具有多对多关系的数据组件按顺序独立显示。所以你只需要一个接一个的插入动作。

    如果你的关系需要依赖更新,你应该使用 SQL triggers 在数据库级别。这将确保数据的完整性,并在应用程序的业务逻辑中提供相当好的分离。

    CREATE TRIGGER some_trigger
        AFTER UPDATE ON some_table
        ...
    END IF;
    

    类似的方法是在php级别的一个逻辑模型中增加关系数据(例如,使用2-3ar模型进行操作),并在其中模拟sql触发器逻辑。