我天生就是一个前端人员,但最近几天数据库设计和后端开发引起了我的兴趣,我一直很困惑。我想完全掌握这些概念,这样我的头就不会再疼了。
我习惯于处理像活动记录这样的 ORM。当我想象我的用户对象通过导轨时,我想象一个人的对象与人员表中的一行相关。好的基本。
所以,我读到像 mongodb 这样的非关系型数据库不仅很酷,因为它们“处理大数据速度很快”,而且它们也很酷,因为它们显然使使用 oop 语言进行开发更加自然(为什么?)。然后我还读到大多数设计模式可能并不是真正的关系型。好的,这就是我迷路的地方。
1)关系设计和非关系设计的一些基本例子是什么?2)与上面类似,结构化数据与非结构化数据的示例是什么(这只是在上面重新表述吗?)
所以,考虑到这些事情,我觉得(在我一无所知的情况下)我尝试建模的几乎所有类型的项目都是关系型的。但也许我只是在使用语义而不是技术性。例如,帖子和评论。互相有关系。在那里添加用户。如今,似乎大多数应用程序都具有通过其他数据/对象访问总是有用的数据。那是关系不是吗?
描述一些不太典型的东西怎么样。
假设我正在构建一个锻炼追踪器应用程序。我有用户、练习、锻炼、例程和 log_entries。
我创建了一个例程来分组锻炼。锻炼是一组锻炼。我通过日志条目记录我的次数和体重以进行锻炼。这是关系数据还是非关系数据?mongo 对这个建模会很好还是很糟糕?
我听说统计数据之类的东西开始发挥作用。这对上面的例子有什么影响?人们通常谈论什么统计数据?
假设我添加了跟踪其他内容,例如用户的体重、身高、体脂等。这对事情有什么影响?
感谢您花时间帮助我理解。
编辑:谁能解释为什么开发一个比另一个更容易。使用 mongo 之类的东西是否更敏捷,因为它在“ge it”后“点击”更多,还因为您不需要运行迁移?
另一件事,当使用像 ORM 这样的抽象时——这真的很重要吗?如果是什么时候?对我来说,最初的价值是查询数据和为我的对象建模的便利性。任何能让我更轻松地做到这一点的东西,我都会很高兴。在尝试对数据进行建模时,我确实发现自己经常摸不着头脑。