我和我的一个朋友刚刚开始了一个自己的项目,以了解最新和最未来的相关web技术:我们决定构建一个具有增强功能的面向对象内容管理系统,如本网站上的社区积分功能。
使用PHP作为开发语言,使用MySQL作为数据库——这似乎是互联网上所有东西的标准数据库解决方案——我们很快就遇到了将对象保存到数据库中的问题,尤其是对象之间的引用。作为第一个解决方案,我们使用了被称为"关节"的表。
但后来我开始研究如何解决这个问题。以下是我的发现:
- 有面向对象的映射解决方案用于关系数据库,也用于MySQL&PHP
- 有一个专门为解决这个特定问题而设计的数据库模型:面向对象数据库
- 对象关系数据库,一个混合模型,基本上是一个具有特殊处理对象节省功能的关系数据库
由于我不想再开始一场关于最佳数据库模型的辩论,下面是我的具体问题:
在我提到的所有解决方案中,您从其他地方了解到,哪一个解决方案得到了足够且不太昂贵的网络存储提供商的良好支持,并且对于"基本"面向对象的功能来说足够好,因此是实现面向对象内容管理系统的好选择?(同样,到目前为止,我们遇到的最痛苦的事情是缺乏对数据库中其他对象的引用。)
非常欢迎对特定数据库类型进行推荐!
您可以尝试任何"NoSQL"数据库,它们不是关系数据库。例如,MongoDB。Mongo以类似JSON的BSON格式存储数据,在PHP中,您可以轻松处理JSON数据。有关NoSQL数据库的信息,请访问http://nosql-database.org/并了解MongoDBhttp://en.wikipedia.org/wiki/MongoDB