gpt4 book ai didi

ember.js - Ember 数据 : Why hasMany and belongsTo

转载 作者:行者123 更新时间:2023-12-02 06:04:01 24 4
gpt4 key购买 nike

我想知道为什么我必须在两个相关的数据集中定义hasMany belongsTo?这似乎是多余的,因为所有必要的信息都已经在其中一个数组中,并且很难保持两者同步。

它也不反射(reflect)在一对多关系中一个表中只有一个外键的 sql 数据库中的表。

最佳答案

因为关系可以有一种两种方式。在您的 SQL 示例中,一个表中的外键仅限制该表,而不是外键所属的表。从某种意义上说,这只是一种单向关系。第一个表中的行必须链接到第二个表中的行,但反之则不行。如果你想模拟这种行为,你应该使用一个 null 反转,像这样:

App.User = DS.Model.extend({
posts: DS.hasMany('post', { inverse: null });
});

App.Post = DS.Model.extend({
// No inverse relationship required
});

不过,拥有双向关系是不同的。为了扩展您的 SQL 比较,需要有两个外键,每个表一个。表 A 的行必须指向表 B 的行表 B 的行必须指向表 A 的行。

但是 SQL 在这里确实是一个糟糕的比较。如果您担心这种不匹配,那么您就是在让您的数据存储实现泄漏到您的数据模型中。相反,您应该将 Ember-Data 模型视为图形。具体来说,directed graphs .一旦您理解了有向图以及如何遍历它们,您就会理解为什么大多数人使用双向关系。 (不过,正如我在上面向您展示的那样,您不必这样做。)

关于ember.js - Ember 数据 : Why hasMany and belongsTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25137401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com