一个实体中有两个相同的父母

时间:2017-01-25 13:21:57

标签: swift vapor

我正在进行聊天后端,我需要包含两个用户的消息历史记录表。

以某种方式做正确的事吗?

static func prepare(_ database: Database) throws {
    try database.create("historys") { history in
        history.id()
        history.parent(User.self, optional: false)
        history.parent(User.self, optional: false)
    }
}

现在我收到多个user_id字段的错误。

1 个答案:

答案 0 :(得分:1)

应该可以在准备中设置字段名称;这将是一个有用的增强。

与此同时,您可以通过创建int字段来获得相同的效果。

static func prepare(_ database: Database) throws {
    try database.create("historys") { history in
        history.id()
        history.int("sender_user_id", optional: false)
        history.int("recipient_user_id", optional: false)
    }
}

在您的模型中,您将拥有属性senderUserId: NoderecipientUserId: Node,并且您将其初始化为例如senderUserId = try Node.extract("sender_user_id")func sender() throws -> Parent<User> { return try parent(senderUserId) } func recipient() throws -> Parent<User> { return try parent(recipientUserId) } echo 'siedi87sik65owk55dkd' | sed 's|[0-9]\{2\}|$(./script.sh &)|g' | xargs -d'\n' -I% sh -c 'echo '\"%\"

然后,您可以在模型上使用以下便捷方法获取每个关系:

echo 'siedi87sik65owk55dkd' | 
  sed 's|[0-9]\{2\}|$(./script.sh &)|g' | tr '\n' '\0' |
    xargs -0 -I% sh -c 'echo '\"%\"