作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一个项目,我必须保存 friend 列表。经过深思熟虑并在网上搜索最佳方法后,似乎将用户 ID 和 friend ID 保存在表中。
但可以肯定的是,如果项目希望达到大规模,这种方法似乎不太好。
大多数大型公司,如 Google、Facebook、Twitter 也将其功能转移到 nosql 数据库上。
那么看起来我们是不是应该从这些 NoSQL 数据库开始我们的项目?
但同时我读到 NoSQL 中有很多编码工作,因为这里没有提供关系数据库中的许多默认服务(如果我错了,请纠正我)
也许一种方法可以从关系开始,因为它在小规模上具有非常好的功能,然后转向 NoSQL,但是为此,您必须编写非常好的可移植代码,ORM 是否可以发挥良好的作用?
想知道其他人对什么是正确的方法可以做到这一点的意见?
最佳答案
远离 ORM,尤其是 ActiveRecord。
他们通常会产生“发展债务”,这意味着它使项目的开始看起来很容易。当您投资与 ORM 的完全集成并完成 80% 的项目时,您开始看到 ORM 失败的所有边界情况。
除此之外,大多数 ORM 进行次优查询并且从不利用特定于引擎的功能。
至于 SQL 与 noSQL:我建议从 SQL 数据库开始,然后当应用程序增长时,开始使用一些缓存策略(memcached,或者 redis)。并且仅当该解决方案用尽时 - 开始寻找不需要关系的数据库逻辑部分。
noSQL 数据库提供非常具体的用例列表,并不适合您的普通应用程序。
关于database-design - NoSQL 或关系型或两者兼而有之,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5843492/
我是一名优秀的程序员,十分优秀!