-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase_models.py
More file actions
63 lines (54 loc) · 1.38 KB
/
database_models.py
File metadata and controls
63 lines (54 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"""
MySQL MCP系统的数据库模型
定义元数据存储和数据库连接的结构
"""
from dataclasses import dataclass
from typing import Optional
from datetime import datetime
@dataclass
class DatabaseConnection:
"""表示一个MySQL数据库连接"""
id: int
name: str
host: str
port: int
username: str
password: str
database_name: str
description: Optional[str] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
@dataclass
class TableMetadata:
"""表示数据库表的元数据"""
id: int
database_id: int
table_name: str
table_schema: str # 表模式的JSON表示
row_count: int
description: Optional[str] = None
comment: Optional[str] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
@dataclass
class ColumnMetadata:
"""表示数据库列的元数据"""
id: int
table_id: int
column_name: str
data_type: str
is_nullable: bool
column_key: str # PRI, UNI, MUL等
column_comment: Optional[str] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
@dataclass
class QueryHistory:
"""表示查询历史记录"""
id: int
database_id: int
query_text: str
natural_language_query: str
executed_at: datetime
execution_time_ms: int
result_count: int