# JSONDBSD **Repository Path**: worldly-way/jsondbsd ## Basic Information - **Project Name**: JSONDBSD - **Description**: JSONDBSD是一个简单的PHP类,用于操作JSON格式的数据库。 - **Primary Language**: PHP - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2023-07-15 - **Last Updated**: 2024-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JSONDBSD JSONDBSD是一个简单的PHP类,用于操作JSON格式的数据库。 用于小型项目,对要求不高,就没有必要使用数据库 ##介绍 JSONDBSD(JSON Document Based Storage System)是一个基于文档的存储系统,用于存储和管理JSON格式的数据。它是一种NoSQL数据库,专门设计用于处理半结构化数据。 JSONDBSD具有以下特点: - 数据存储:JSONDBSD以文档的形式存储数据,每个文档都是一个独立的JSON对象。文档之间没有固定的模式或结构要求,可以自由地存储不同类型和结构的数据。 - 数据查询:JSONDBSD支持灵活的查询语言,可以使用类似SQL的查询语法进行数据检索。可以根据文档的字段值、嵌套层级、数组元素等进行查询,支持过滤等操作。 - 数据完整性:JSONDBSD支持事务和数据一致性。可以对多个文档进行原子操作,保证数据的完整性和一致性。 - 可扩展性:JSONDBSD具有良好的可扩展性,可以水平扩展到多个节点,实现高可用性和高吞吐量的数据存储和处理。 - 数据安全:JSONDBSD提供数据加密和访问控制等安全功能,保护数据的机密性和隐私性。 - 多语言支持:JSONDBSD支持多种编程语言的客户端库,可以方便地与不同的应用程序集成和交互。 - 总之,JSONDBSD是一种灵活、可扩展且易于使用的文档存储系统,适用于处理半结构化数据和小型规模数据存储的场景。它提供了强大的查询和索引功能,可以满足各种复杂的数据需求。 ## 构造函数 ## php ```php public function __construct($filename) ``` - 参数:$filename - 数据库文件名(不包含扩展名) - 描述:构造一个JSONDBSD对象,并加载指定文件的数据 ## 方法 ### loadData ```php private function loadData($filename) ``` - 参数:$filename - 数据库文件名(不包含扩展名) - 描述:从指定文件中加载数据 ### saveData ```php public function saveData($filename) ``` - 参数:$filename - 数据库文件名(不包含扩展名) - 描述:将数据保存到指定文件中 ### insert ```php public function insert($table, $data) ``` - 参数:$table - 表名,$data - 要插入的数据(数组) - 描述:向指定表中插入一条数据 ### delete ```php public function delete($table, $condition) ``` - 参数:$table - 表名,$condition - 删除条件(数组) - 描述:根据条件删除指定表中的数据 ### select ```php public function select($table, $condition) ``` - 参数:$table - 表名,$condition - 查询条件(数组) - 描述:根据条件查询指定表中的数据 ### update ```php public function update($table, $condition, $data) ``` - 参数:$table - 表名,$condition - 更新条件(数组),$data - 更新的数据(数组) - 描述:根据条件更新指定表中的数据 ## 私有方法 ### checkConditions ```php private function checkConditions($row, $conditions) ``` - 参数:$row - 数据行,$conditions - 查询条件(数组) - 描述:检查数据行是否满足查询条件 ### fileReadSafe ```php private function fileReadSafe($file, $timeout = 3) ``` - 参数:$file - 文件路径,$timeout - 超时时间(秒) - 描述:安全地读取文件内容 ### fileWriteSafe ```php private function fileWriteSafe($file, $buffer, $timeout = 3) ``` - 参数:$file - 文件路径,$buffer - 要写入的内容,$timeout - 超时时间(秒) - 描述:安全地写入文件内容 ##例子: ```php // 示例数据 $data = [ ['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30], ['id' => 3, 'name' => 'Bob', 'age' => 35], ['id' => 4, 'name' => 'Alice', 'age' => 25], ['id' => 5, 'name' => 'Josh', 'age' => 32] ]; // 创建 JSONDBSD 实例 $db = new JSONDBSD('data.json'); // 插入数据 foreach ($data as $item) { $db->insert('users', $item); } // 查询数据:条件为 (age = 30) 的记录 $result = $db->select('users', [ 'age' => ['=', 30] ]); print_r($result); // 更新数据:将名字为 'John' 的记录的年龄改为 28 $db->update('users', [ 'name' => ['=', 'John'] ], [ 'age' => 28 ]); // 查询数据:条件为 (age > 25) 的记录 $result = $db->select('users', [ 'age' => ['=', 25], 'name' =>['=', 'Alice'] ]); print_r($result); // 删除数据:删除年龄为 35 的记录 $db->delete('users', [ 'id' => ['=', 1] ]); $db->saveData('data.json'); ``` ## Python JSONDBSD是一个简单的数据库管理类,使用Python编写,可以用于存储和操作JSON格式的数据。 ## 特点 - 轻量且易于使用 - 数据以JSON格式存储 - 支持基本的CRUD操作:插入、删除、查询、更新 - 支持基于条件的查询 - 基于文件的存储,使用文件锁确保数据一致性 ## 使用方法 1. 在您的Python项目中包含`JSONDBSD.py`文件。 2. 创建`JSONDBSD`类的实例,并提供JSON数据文件的文件名。 3. 使用`insert`方法插入数据。 4. 使用`delete`方法删除数据。 5. 使用`select`方法查询数据。 6. 使用`update`方法更新数据。 ## 示例 ```python # 导入JSONDBSD类 from JSONDBSD import JSONDBSD # 创建JSONDBSD对象 db = JSONDBSD('data.json') # 插入数据 db.insert('users', {'id': 1, 'name': 'John Doe', 'age': 25}) # 查询数据 result = db.select('users', {'age': {'>': 25}}) print(result) # 更新数据 db.update('users', {'id': {'=': 1}}, {'age': 26}) # 删除数据 db.delete('users', {'age': {'<': 30}}) ```