Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ember Data - Many to Many Relationships?

The project I am working on relies heavily on many-to-many relationships, however I am unable to see how exactly to achieve this using Ember Data in Ember JS.

The use case I currently have is made up three models:

Person
Address
PersonAddress

The link between the person is necessary for what I am currently working on. Would it be possible to get an example of how this could be achieved?

like image 705
Jacob Mason Avatar asked Jan 28 '26 20:01

Jacob Mason


1 Answers

Apparently you are trying to manage the many-to-many relationship yourself using the intermediate PersonAddress model, which I assume holds a single person associated with a single address.

This is not a very good way to do things. To find a person's addresses, you're going to have to manually lookup all the entries in PersonAddress for that person, then take the addresses from those entries. The problem with this approach, among others, is that when a new address is added, for example, you will have to redo this lookup, and ensure that it happens automatically in order for the UI to be updated properly.

It is much better to simply have hasMany relationships on both Person and Address. Then Ember Data will keep everything in sync--something like

// models/person.js
export default DS.Model.extend({
  name: DS.attr(),
  addresses: DS.hasMany('address')
});

// models/address.js
export default DS.Model.extend({
  address: DS.attr(),
  persons: DS.hasMany('person')
});

Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!