Created
December 5, 2019 13:44
-
-
Save sorenbs/79257e8f39b4fb153dc3fce71c7d14a4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Thanks Matt! | |
That is certainly a valid argument regarding implicit many-many relations, but not for the reason you have described. As I wrote in [339](https://github.com/prisma/specs/issues/339#issuecomment-559534963), I think implicit many-many is a solved problem: Introspection and Lift should both simply follow our convention when printing and reading the schema. | |
--- | |
The main reason I am interested in including the implicit many-many syntax is that they enable a simpler Photon API for the majority that does not need extra fields on the relation table. | |
### Traversing implicit many-many relation: | |
``` | |
model User { | |
posts Post[] | |
} | |
model Post { | |
user User | |
title String | |
} | |
``` | |
``` | |
prisma.users.findOne(...).posts()[o].title | |
``` | |
### Traversing explicit many-many relation: | |
``` | |
model User { | |
posts UserPost[] | |
} | |
model UserPost { | |
user User | |
post Post | |
} | |
model Post { | |
user User | |
title String | |
} | |
``` | |
``` | |
prisma.users.findOne(..., include: {posts: {post: true}}).posts()[0].post.title | |
``` | |
So, the call to make is wether the gain from simpler Photon API is worth the extra complexity in the Schema (having both implicit and explicit many-many is more complex than just having the explicit version). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment