feat: 更新 sstable 并新增 examples/complex 示例

This commit is contained in:
2025-10-12 03:44:31 +08:00
parent 03ec262ca5
commit c7cb1ae6c6
4 changed files with 1155 additions and 0 deletions

View File

@@ -6,6 +6,10 @@
```
examples/
├── complex/ # 复杂类型系统示例21 种类型全覆盖)
│ ├── main.go # 主程序
│ ├── README.md # 详细文档
│ └── .gitignore # 忽略数据目录
└── webui/ # Web UI 和命令行工具集
├── main.go # 主入口点
├── commands/ # 命令实现
@@ -22,6 +26,82 @@ examples/
---
## Complex - 完整类型系统演示
一个展示 SRDB 所有 **21 种数据类型**的完整示例,包括结构体 Schema 生成、边界值测试、索引查询和分页等核心功能。
### 🎯 涵盖的类型
| 分类 | 数量 | 包含类型 |
|------|------|----------|
| **字符串** | 1 种 | String |
| **有符号整数** | 5 种 | Int, Int8, Int16, Int32, Int64 |
| **无符号整数** | 5 种 | Uint, Uint8, Uint16, Uint32, Uint64 |
| **浮点数** | 2 种 | Float32, Float64 |
| **布尔** | 1 种 | Bool |
| **特殊类型** | 5 种 | Byte, Rune, Decimal, Time, Duration |
| **复杂类型** | 2 种 | Object, Array |
### 快速开始
```bash
cd examples/complex
# 运行示例
go run main.go
# 清理并重新生成
go run main.go --clean
# 指定数据目录
go run main.go --dir ./mydata --clean
```
### 示例输出
```
╔═══════════════ 设备记录 #1 (seq=1) ═══════════════╗
║ ID: IOT-2025-0001 ║
║ 名称: 智能环境监测站 ║
╟─────────────────── 整数类型 ────────────────────────╢
║ Signal(int): -55 ║
║ ErrorCode(i8): 0 ║
║ DeltaTemp(i16): 150 ║
║ RecordNum(i32): 12345 ║
║ TotalBytes(i64):1073741824 ║
...
```
### 功能演示
**结构体自动生成 Schema**
```go
fields, _ := srdb.StructToFields(DeviceRecord{})
```
**边界值测试**
- int8 最大值 (127)
- int16 最小值 (-32768)
- uint64 最大值 (18446744073709551615)
**索引查询优化**
```go
table.Query().Eq("device_id", "IOT-2025-0001").Rows()
```
**分页查询(返回总数)**
```go
rows, total, err := table.Query().Paginate(1, 10)
```
**复杂类型序列化**
- Object: map[string]any → JSON
- Array: []string → JSON
详细文档:[complex/README.md](complex/README.md)
---
## WebUI - 数据库管理工具
一个集成了 Web 界面和命令行工具的 SRDB 数据库管理工具。