【发布时间】:2022-01-02 19:14:21
【问题描述】:
我有一个User 模型,可以发布Comments 并对它们进行投票。 Comments 也可以是彼此的父级(对于嵌套的 cmets,如 HN 或 Reddit`)。
model User {
[...]
// Comments the user has posted
comments Comment[] @relation("UserToComment")
// Comments the user has voted on
upvotedComments Comment[] @relation("_UpvoterToComment")
downvotedComments Comment[] @relation("_DownvoterToComment")
}
model Comment {
[...]
// Comment's author
author User @relation("UserToComment", fields: [authorId], references: [id])
authorId String
// Users who voted on the comment
upvoters User[] @relation("_UpvoterToComment")
downvoters User[] @relation("_DownvoterToComment")
// One-to-many self-relation for nested comments
parentId String?
parent Comment? @relation("Parent", fields: [parentId], references: [id])
children Comment[] @relation("Parent")
}
我有几个关于如何正确命名这些关系的问题。
描述User是多个Comments的作者的关系应该如何命名:
- “UserToComment”?
- “作者”?
- “评论作者”?
- “用户评论”?
我在某处读到多对多关系名称应该以下划线开头(但我不确定为什么,以及这是否也适用于一对多关系)。描述多个Users 是多个Comments 的支持者的关系应该如何命名:
- “_UpvoterToComment”?
- “UpvoterToComment”?
- “用户投票”?
- “支持者”?
最后,我有一个与嵌套 cmets 相关的 Comment。这个关系应该被命名:
- “父母”?
- “儿童”?
- “父母子女”?
- “CommentToComment”?
- 以上任何一项但前面有下划线?
你们能帮我理解这里的正确约定吗,给我一些关于如何命名我的关系的建议?
【问题讨论】: