让App Maker尊重多对多关系的顺序

时间:2018-08-16 16:05:01

标签: google-app-maker

我很难让App Maker尊重多对多关系的顺序。

假设我有两个模型:

模型1具有ID,并且与模型2也具有ID的多对多关系。

应用程序制造商会生成三个表:

DESCRIBE model_1;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| Id                 | int(11)      | NO   | PRI | NULL    | auto_increment |
+--------------------+--------------+------+-----+---------+----------------+
DESCRIBE model_2;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| Id                 | int(11)      | NO   | PRI | NULL    | auto_increment |
+--------------------+--------------+------+-----+---------+----------------+
DESCRIBE model_1_Has_model_2;
+------------------+---------+------+-----+---------+-------+
| Field            | Type    | Null | Key | Default | Extra |
+------------------+---------+------+-----+---------+-------+
| parentModel1_fk  | int(11) | NO   | MUL | NULL    |       |
| childModel2_fk   | int(11) | NO   | MUL | NULL    |       |
+------------------+---------+------+-----+---------+-------+

现在,我们有一个ID为{1的model_1对象和三个ID为1, 2, 3的model_2对象。如果我将model_1.childModel_2分配给[model_2_ID_1, model_2_ID_2],则model_1_Has_model_2表将包含:

parentModel1_fk | childModel2_fk
--------------------------------
1               | 1
1               | 2

现在假设我使用model_1.childModel_2拼接model_1.childModel_2.splice(0, 1),然后使用model_1.childModel_2.splice(0, 0, model_2_ID_3)在索引0中插入model_2 ID 3。我希望我的表包含以下内容:

parentModel1_fk | childModel2_fk
--------------------------------
1               | 3
1               | 1

但是它包含相反的内容:

parentModel1_fk | childModel2_fk
--------------------------------
1               | 1
1               | 3

除了清除整个关系然后将其设置为新的预期顺序之外,有什么办法可以阻止此行为?

1 个答案:

答案 0 :(得分:0)

简短的回答是“否”。 App Maker只是在创建新记录,而不是重新排列表格。否则,它将必须编辑低于所需插入点的所有记录(这可能是非常耗时的事务)。如果这是所需的功能,则必须手动进行。

我会认真考虑创建自己的联接表,该表将使您拥有更多的列,可以在其中存储所需的排序顺序。