swift - `Model` 类看起来有什么关系?

标签 swift postgresql fluent vapor

使用 Vapor我想存储与 child 的关系。我还没有找到该类应该是什么样子的任何示例,我只是在猜测该怎么做。任何人都可以提供与其他 Model 对象列表有关系的类的示例吗?

import Vapor
import Fluent
import Foundation

final class Store: Model {

    // MARK: - Model
    var id: Node?
    var exists: Bool = false
    var locationIDs: [Node] = [] // No idea if this is right

    var name: String

    init(name: String, locationIDs: [Node] = []) {
        self.id = nil
        self.name = name
        self.locationIDs = locationIDs
    }

    init(node: Node, in context: Context) throws {
        id = try node.extract("id")
        name = try node.extract("name")
//      ???
    }

    func makeNode(context: Context) throws -> Node {
        return try Node(node: [
            "id": id,
            "name": name
//          ???
        ])
    }

    static func prepare(_ database: Database) throws {
        try database.create( "stores" ) { creator in
            creator.id()
            creator.string("name")
//            creator.id("", optional: false) // ???
        }
    }

    static func revert(_ database: Database) throws {
        try database.delete("stores")
    }

}

最佳答案

这是我对用户和组关系的实现。一个用户属于一个组,组有很多用户,所以一个简单的 1 -> 许多关系。

final public class User: Model {
  public var id: Int?
  var emailAddress: String
  var username: String
  var groupId: Int

}

extension User {
  var group: Parent<User, Group> {
    return parent(\.groupId)
  }
}


final public class Group: Model {
   public var id: Int?
   var name: String
}

extension Group {
   var users: Children<Group, Users> {
      return children(\.groupId)
   }
}

许多 <-> 许多相似但在关系中间使用数据透视表。

关于swift - `Model` 类看起来有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825433/

相关文章:

swift - Xcode 8.1 UIDataSourceModelAssociation 坏了?

swift - 将 float 保存到 NSUSERDEFAULT

database - 我的 PSQL 数据库性能是否在我的硬件预期范围内?

SQL如何将 "collect"行合并为一行

sql-server - 如何为所有测试文件运行 Jasmine beforeAll

ios - 获取用户的当前位置/坐标

c# - 具有多对多和 IncludeMembers 的自动映射器

javascript - 流畅的异步 api 与 ES6 代理 javascript

php - Laravel 4 从子查询中的另一个表中选择列

ios - 在 Xcode_6 beta 5 中只有部分 tableview 单元格内容可见