什么是文档型数据库?
文档数据库(也称为面向文档的数据库或文档存储)是在文档中存储信息的数据库,是非关系型数据库的一种。
为什么要用文档型数据库?
- 迁移十分方便(不再需要导入导出数据库)
- 对服务器要求进一步降低(只需要可以运行PHP即可)
和关系型数据库的区别
- 数据模式的直观性:文档型数据库中的存储单位“文档”直接对应应用层代码中的“对象”,开发者使用起来更加方便,不需要跨表或者表连接等操作。
- 使用JSON带来的好处:JSON已经成为数据交换和存储的标准。JSON文档是轻量级的、独立于语言的、人类可读的。开发人员可以按照应用程序需要的方式构造数据——丰富的对象、键值对、表、地理空间和时间序列数据,或者图形的节点和边。
- 模式的灵活性:因为结构比较灵活,开发者在创建文档时,不用像使用关系型数据库那样,首先去定义它的结构;开发者可以在任意时间根据需要去修改数据的结构。
Xiuno中有关数据库操作的地方
XiunoPHP框架中有关数据操作的函数包括:
- //一般操作↓
- db_connect//连接数据库
- db_new//创建数据库连接
- db_find_one//查找一个
- db_find//普通查找
- db_exec//直接执行SQL语句
- db_count//表中行的数量
- db_maxid//表中最大主键ID
- //CRUD操作↓
- db_create//增加一行
- db_read//等效于db_find_one
- db_update//编辑一行
- db_delete//删除一行
Xiuno BBS中对帖子、用户等的操作都是基于以上函数制成的。
如何修改?
具体实现方式不再赘述,有动手能力的可以试试。
核心(model文件夹里的文件)
将使用到db_create、db_read等函数的地方换掉即可。不影响函数本身。
插件
插件主要使用db_create、db_read等函数,所以直接修改这些函数,可以获得更好的兼容性。
小结
核心(model文件夹里的文件)尽量直接用文档数据库提供的函数(可获得更好的性能),但也要修改XiunoPHP框架里的数据库相关函数。
特点
- 标准化储存(JSON格式)
- 内置缓存机制(读取数据时先看缓存)
- 相对MySQL,可存储更多类型的数据(如数组等)
- 可以有更多的并发支持
缺点
总结
有可行性,但整个Xiuno生态是建立在MySQL上的,所以这种修改方案适合“小众客制化”。
WIP