ERDDesignTool.txt ---------- 2020-05-13 dbdiagram.io: https://dbdiagram.io/home sample: Enum PersonRole { owner supervisior guest } Table user { id int [PK, increment] name varchar(10) role PersonRole login varchar(20) pwd varchar(8) belongToUserId int [ref: > user.id] FCreateTime datetime FUpdateTime datetime } Table category { id int [PK, increment] name varchar(10) desc varchar(10) parentId int childrenIds [int] } Table container { id int [PK, increment] name varchar(10) desc varchar parent int [ref: > category.id] } Table setup { container_id int [ref: > container.id] tracker_id varchar(20) [PK, ref: - T.FID] worknote varchar } Table tdevice as D { FID varchar(20) [PK] FType varchar(10) FKeyOriginal varchar(20) FAreaID varchar(20) [ref: > A.FID] FVersionTag varchar(20) FCreateTime datetime FUpdateTime datetime } Table tbuilding as B { FID varchar(20) [PK] FName varchar(10) FFloorsOnGround int FBasements int FVersionTag varchar(20) FCreateTime datetime FUpdateTime datetime } Table tfloor as F { FBuilding varchar(20) [PK, ref: > B.FID] FFloor int [PK] FMapFile varchar(256) FVersionTag varchar(20) FCreateTime datetime FUpdateTime datetime } Table tarea as A { FID varchar(20) [PK] FLeft int FTop int FWidth int FHeight int FBuilding varchar(20) [ref: > B.FID] FFloor int [ref: > F.FFloor] FProhibit int FMapped int FDeviceID varchar(20) FVersionTag varchar(20) FCreateTime datetime FUpdateTime datetime } Table ttracelog as log { FNo int [pk, increment] // auto-increment FID varchar(20) [ref: > T.FID] FKeyGroup varchar(10) FKeyID varchar(20) FTimeReceive datetime FSourceType char(1) FSourceTime varchar(10) FReaderID varchar(20) [ref: > R.FID] FRepeaterID varchar(20) FTagStatus char(1) FBeaconID varchar(20) FRssiRola int FRssiBeacon int FRssiRolaMin int FRssiBeaconMin int FGPSData int FGPSRead int FLatitude double FLongitude double FPressure int FTemperatureP int FTemperatureT int FHumidity int FStatus int FOwner varchar(20) FIP varchar(20) FPort int FDeviceType int FDeviceID varchar(20) FBuilding varchar(20) FFloor int FFloorPressure int FAreaID varchar(20) FMessage varchar(128) FError varchar(128) FWarn int FWarnLevel2 int FWarnPress int FWarnArea int FLowBattery int FVersionTag varchar(20) FCreateTime datetime FUpdateTime datetime } Table ttracker as T { FID varchar(20) [pk] FKeyGroup varchar(10) FKeyID varchar(20) FRssiRolaMin int FRssiBeaconMin int FOwner varchar(20) FVersionTab varchar(20) FCreateTime datetime FUpdateTime datetime } Table treader as R { FID varchar(20) [pk] FIP varchar(20) FPort int FVersionTag varchar(20) FCreateTime datetime FUpdateTime datetime } Table ttrace as Latest { FNo int [PK, ref: < log.FNo] FID varchar(20) } Table tblalarm { tracker_id varchar(20) [note: 'FID of ttracker'] log_no int [ref: < log.FNo] message varchar(128) happened datetime } ---------- 2020-05-13 https://app.diagrams.net/ 為什麼要說是重新發現呢?因為「 Draw.io 」前身叫做「 Diagramly 」,是一個已經發展多年的線上流程圖軟體,難能可貴的是,他一直保持「完全免費」,並且直到 2015 年的現在都依然持續更新(最近他們還發表文章說明自己保持永久免費的決心)。 所以當我隔了幾年再次看到「 Draw.io 」後,發現它已經是一個「速度飛快」、「圖庫素材齊全」、「範本專業豐富」,可以「線上、離線」使用,還能與 Google Drive 完美結合的圖表製作工具,而且有中文介面,是對一般工作者、老師學生來說非常值得推薦的流程圖繪製軟體。 「 Draw.io 」還有一個特點,他雖然是一個線上工具,但卻不提供雲端儲存服務(所以也不需註冊登入),也就是說你繪製的圖表不會儲存在「 Draw.io 」,要自己儲存在你的硬碟、你的 Dropbox ,或是你的 Google 雲端硬碟中。 「 Draw.io 」拋棄儲存服務,但專注的去把一個線上流程圖製作軟體發展到最快最好用。