MySQL Schema Attribute 實作前確認

整理進入程式 repo 實作 DbTable、DbColumn、DbIndex 與 Schema Model 前的確認項目。

返回 docs

MySQL Schema Attribute 實作前確認

本文件用於整理進入程式 repo 實作 DbTableAttributeDbColumnAttributeDbIndexAttribute 與 Schema Definition 轉換前的最後確認。

此確認表只代表「準備開始設計與實作前的條件整理」,不代表已經同意實際連線 MySQL、建立資料表、安裝套件、修改 public method 簽章或改變專案啟動方式。

節點定位

Schema Attribute 實作前確認
  1. MySQL Schema 自動建表設計
  2. MySQL schema Class 初稿
  3. MySQL 行前連線資訊確認
  4. MySQL 行前資訊填寫範本
  5. Schema Attribute 實作前確認
  6. Schema Attribute / Schema Model 實作
  7. Schema Generator / Initializer 實作
  8. MySQL TaskStore PoC

已確認的設計方向

項目決策備註
MySQL 版本5.6.2第一版以 MySQL 5.6.2 相容為準
Schema 維護方式C# Class + Attribute欄位型別、索引、描述直接由 C# 維護
自動建表範圍Table / Column / Index第一版不自動建立 database
不做事項Drop column / Drop table / 改欄位型別 / 搬資料避免破壞既有資料
原始資料欄位TEXT / LONGTEXTMySQL 5.6.2 不使用 JSON
時間欄位datetimeMySQL 5.6.2 第一版不依賴小數秒
關聯方式邏輯關聯 + Index第一版不建立外鍵約束

進入實作前必須確認

確認項目建議值目前狀態是否卡住實作說明
MySQL 版本5.6.2已確認使用者已提供版本
Host / IP待填待確認尚未提供實際測試環境
Port3306待確認若非 3306 需標註
Database Namehs_device_control待確認第一版不自動建立 database
User待填待確認建議 PoC 專用帳號
Password 提供方式環境變數 / 臨時輸入待確認不得寫入 repo 或文件
Charsetutf8建議採用MySQL 5.6.2 第一版建議 utf8
AutoCreateSchematrue待確認是否允許建立 table / column / index
DryRunSchemaSqltrue建議採用首次先輸出 SQL,不實際改 DB
StopOnSchemaMismatchtrue建議採用欄位型別不一致時停止
權限SELECT / INSERT / UPDATE / CREATE / ALTER / INDEX待確認權限不足會阻擋 PoC

本次實作允許範圍

類別允許內容
AttributeDbTableAttributeDbColumnAttributeDbIndexAttribute
Schema ModelSchemaDefinitionTableDefinitionColumnDefinitionIndexDefinition
解析器將 Attribute 解析為中立 Schema Model
測試Attribute 解析測試、MySQL 5.6.2 型別字串測試
文件同步實作範圍與限制

第一批不連線 MySQL、不執行 DDL、不安裝或更換 MySQL 套件、不修改 Core public method 簽章、不改變 ConsoleHost 啟動方式,也不建立 WebApi、ServiceHost 或 UI。

建議 Attribute 契約

DbTableAttribute

屬性用途是否必要
NameMySQL table name
Description表格描述

DbColumnAttribute

屬性用途是否必要
NameMySQL column name
TypeMySQL column type,例如 varchar(64)
IsPrimaryKey是否主鍵
IsRequired是否 NOT NULL
Description欄位描述

DbIndexAttribute

屬性用途是否必要
NameIndex name
ColumnsIndex column list
IsUnique是否唯一索引

實作前驗收標準

驗收項目預期結果
能讀取 class 上的 DbTableAttribute產出正確 table name 與描述
能讀取 property 上的 DbColumnAttribute產出正確欄位名稱、型別、必填與主鍵資訊
能讀取 class 上多個 DbIndexAttribute產出多組 index definition
缺少 table name回傳標準錯誤或驗證失敗
缺少 column name / type回傳標準錯誤或驗證失敗
不支援的 MySQL type回傳標準錯誤或驗證失敗

實作前仍需使用者確認

Host / IP:
Port:
Database Name:
User:
Password 提供方式:
AutoCreateSchema:
DryRunSchemaSql:
StopOnSchemaMismatch:
權限確認:

Password 請只填提供方式,不要填真實值。

建議下一步

若使用者確認上述資訊與範圍,下一步建議進入「Schema Attribute 第一版實作前 commit/push 前確認」,再切換到程式 repo 實作 Attribute 與 Schema Model。