【发布时间】:2012-11-02 07:05:22
【问题描述】:
问题
我有一个具有User 对象和Student 对象的应用程序。 一些用户是学生。所有学生都是用户。在数据库(基于 django-ORM)中,这表示为一个 Student 表,并带有一个指向 User 表的外键。
我正在尝试创建一个 REST API,并在 iOS 应用程序中创建一个对象层次结构来模拟这个 API。我在决定如何建模时遇到了麻烦。
当前的解决方案
我想出的最好的方法是:在 iOS 中有一个 User 模型,在 iOS 中有一个 Student 模型,它继承自 User 并使用更多属性对其进行扩展。然后,有一个从服务器接收 JSON 响应的方法,并根据字典创建或者User 或Student 模型。
最后,服务器需要总是给我最具体的类型。即,当我登录服务器时,它将决定我是学生还是普通用户,并返回正确的字典。
这是最好的方法吗?
这听起来有点复杂。但是我想到的任何其他建模方式,例如改变数据库的布局方式,给了我一个数据库不知道所有约束的设计。例如,Student 对象被允许拥有其他对象(例如,homework_paper)。我可以用User 对象而不是Student 对象的外键对此进行建模,并说Student 只是用户的扩展。但是数据库并没有强制要求homework_paper 必须由学生拥有。
有没有更好的方法来解决我错过的这个问题?
【问题讨论】:
标签: objective-c django api oop rest