【问题标题】:How to model circular data in ios app如何在 ios 应用程序中对循环数据进行建模
【发布时间】:2014-07-15 10:45:55
【问题描述】:

我正在尝试为我尝试建模但总是以循环引用结尾的数据提出一个架构;我一定是遗漏了一些东西,但我正在寻找关于最好的建模方法的建议。

假设我从网络服务中提取照片列表,对于每张照片,我都想提取出摄影师及其拍摄区域,以便我可以运行查询以查看摄影师拥有多少张照片,并且有多少摄影师在特定地区拍摄过照片。

对此建模的最佳方法是什么?我认为一张照片有 1 位摄影师并且在 1 个地区,但每个摄影师/地区可以有多张照片,并且一个地区也需要与摄影师建立关系,以便我们可以看到有多少人在特定地区拍摄了照片。

这就是我描绘这种关系的方式(希望图表有意义),但这会创建一个圆圈......

照片*>--摄影师*>--

不确定是否会有所不同,但这是针对使用 sqlite3 的 iOS 应用程序

【问题讨论】:

  • 您有三个表:“Photo”、“Photographer”和“Region”。为“Photographer”和“Region”添加外键到“Photo”。然后进行查询以获得您需要的结果集。或者只有“摄影师”和“地区”名称的字段。有很多事情需要考虑,包括规范化和需求。如果你要设计自己的模式,你真的需要学习数据库模式设计和 SQL 查询语言。可以考虑的替代方法是使用 CoreData。
  • 这个问题可能更适合programmers.stackexchange.com。

标签: ios sql sqlite database-design


【解决方案1】:

关于,“一个地区也需要与摄影师建立关系,以便我们可以看到有多少人在特定地区拍摄了照片。”

不,它没有。区域表需要的只是一个 id 字段和有关区域的信息。此外,摄影师不能有 regionId 字段,因为他们可能可以从多个区域拍摄照片。话虽如此,根据您的要求,它可能有一个 CurrentHomeRegionID 字段,该字段是区域的外键。

如果您的照片表中有摄影师 ID 和区域 ID,您几乎可以运行任何您想要的查询。

【讨论】:

  • 好的,感谢您的帮助。似乎我只需要阅读更多关于数据库设计的内容,因为我在想,如果你想获取一个区域中的所有照片,那么与链接区域相比,对区域为 X 的所有照片运行查询似乎效率低下直接拍照。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 2020-04-22
  • 2017-05-16
  • 2020-11-30
  • 2018-08-23
  • 1970-01-01
  • 2021-09-24
相关资源
最近更新 更多