
Hi! I'm creating and testing a simple data model and I'm a bit confused about how one way relationship restrictions work with many to many relationship. I will provide an example.
I have a collection for "Users" and another collection for "Skills", every user should be able to have multiple skills. Eventually I will query users by skills but I don't want to keep track of the users in the skill collection, so I see a one way relationship.
If I make this relationship "Many to one": "members can contain one skill, skills can belong to many members" -> Then restrictions work as expected:
- Restrict: You cannot delete a skill referenced by a user, but you can delete a user that has a skill.
But if I make the relationship "Many to many" (as I want): "members can contain many skills, skills can belong to many members" -> Then restrictions work in a strange way IMHO.
- Restrict: I cannot delete users that have skills referenced but I can delete skills that are related to users.
Is this the intended behavior? I expected different behavior, more close to the "many to one" restriction, as this is a one way relation, what I expected was:
- Restrict: I shouldn't be able to delete skills that are referenced in users but I should be able to delete any user with skills without any problems.
I have IT background and I guess many to many relationships are using a hidden table to keep track of the references, and something weird must be happening with the restrictions in the pivot table.
Recommended threads
- Function scheduling is not functional on...
Hello everyone! I'm using Appwrite Cloud and I have a function that runs every day at 00:00 UTC. Preciously it worked fine, but it didn't fire last night and i...
- Deleted an column but can't reuse name
I deleted a relationship column because I was having trouble with deleting a row and I was suspicious of the relationship. After deleting the column the row was...
- SSR Image Previews
I am using the SSR guide (with SvelteKit) to use Appwrite on both the server and the client. I do this by also passing the cookie back to the client and creatin...
