Why ERD
資料庫模型是你的應用的核心,描述資料表、資料型別、實體關係和約束,是專案開發階段最重要的溝通手段。清晰的ERD可以便於團隊理解需求,掌握應用的全貌。
應用場景
初創專案
對於初創專案或者新的需求,能夠正確的建立滿足業務需求的資料模型是專案可以順利迭代的關鍵因素。有了DrawERD這樣的工具,可以讓需求快速轉換成視覺化的ERD,在團隊成員間達成共識,不再需要反覆去核對「類目和產品到底是一對多還是多對多關係?」這種經常被忽略但又特別關鍵的資訊。
遺留專案
對於遺留專案,一般業務已經非常穩定,但新人剛加入團隊,面對幾百張表的業務系統往往摸不到頭腦。有了DrawERD,新人可以快速的瞭解專案資料關係,對應用有系統性的認識。
如果你的資料庫已經有幾百張表,打算從單體應用向微服務遷移,那麼DrawERD的分組功能是一個最佳工具,透過對模組的分組模擬,你可以清晰的判斷哪個實體放到哪個服務更合理。
Why not alternative?
上圖是DrawERD的核心特性,相比市面上流行的建模工具,做了很多tradeoff,下面來說一下每個決策的理由:
- SaaS vs desktop tool:相比單機工具,能夠團隊協同是DrawERD的一個目標,你可以生成url嵌入到你的專案管理工具,ERD的變更也會自動同步。
- Auto layout vs Drawing on canvas manually:很多工具基於畫布上的拖拽來編輯ERD,這種方式看起來很酷,但是實際使用起來,如果你的應用達到幾十張表之後,就是災難。DrawERD採用自動佈局的方式,會根據你的實體和關係自動渲染出清新美觀的SVG圖,同時你可以選擇mode和layout的組合進行渲染。
- Database agnostic vs Database binding:一些工具需要依賴資料庫連線去反向出資料結構,DrawERD選擇使用靜態解析的方式,你只需要從你現有資料庫匯出DDL檔案上傳,對於新建專案,只需要介面上建立實體和關係,不依賴任何外來鍵和資料庫的元資訊。
Roadmaps
- Export from ERD to DDL
- Auto generate GraphQL API:根據模型定義自動生成GraphQL API endpoint,類似firebase
- ERD public hub:提供常用應用型別或模組(如:CRM、電商、財務等)的ERD模板
Demo && Screenshots
- Full video here: www.loom.com/share/e30d06ba299b43b...
- Try DrawERD online: drawerd.com
- Doc: help.drawerd.com
歡迎試用/反饋/吐槽/建議
update: 新增了download和share svg功能
新增了mysql的匯入
新增了根據列名規則自動生成relation功能
本作品採用《CC 協議》,轉載必須註明作者和本文連結