Why ERD
數(shù)據(jù)庫模型是你的應(yīng)用的核心,描述數(shù)據(jù)表傻粘、數(shù)據(jù)類型帮掉、實體關(guān)系和約束,是項目開發(fā)階段最重要的溝通手段稽莉。清晰的ERD可以便于團(tuán)隊理解需求涩搓,掌握應(yīng)用的全貌。
應(yīng)用場景
初創(chuàng)項目
對于初創(chuàng)項目或者新的需求良拼,能夠正確的建立滿足業(yè)務(wù)需求的數(shù)據(jù)模型是項目可以順利迭代的關(guān)鍵因素充边。有了DrawERD這樣的工具,可以讓需求快速轉(zhuǎn)換成可視化的ERD浇冰,在團(tuán)隊成員間達(dá)成共識肘习,不再需要反復(fù)去核對「類目和產(chǎn)品到底是一對多還是多對多關(guān)系?」這種經(jīng)常被忽略但又特別關(guān)鍵的信息漂佩。
遺留項目
對于遺留項目仅仆,一般業(yè)務(wù)已經(jīng)非常穩(wěn)定垢袱,但新人剛加入團(tuán)隊,面對幾百張表的業(yè)務(wù)系統(tǒng)往往摸不到頭腦请契。有了DrawERD夏醉,新人可以快速的了解項目數(shù)據(jù)關(guān)系涌韩,對應(yīng)用有系統(tǒng)性的認(rèn)識。
如果你的數(shù)據(jù)庫已經(jīng)有幾百張表靶擦,打算從單體應(yīng)用向微服務(wù)遷移雇毫,那么DrawERD的分組功能是一個最佳工具,通過對模塊的分組模擬枚粘,你可以清晰的判斷哪個實體放到哪個服務(wù)更合理飘蚯。
Why not alternative?
上圖是DrawERD的核心特性局骤,相比市面上流行的建模工具攀圈,做了很多tradeoff,下面來說一下每個決策的理由:
- SaaS vs desktop tool:相比單機(jī)工具峦甩,能夠團(tuán)隊協(xié)同是DrawERD的一個目標(biāo)量承,你可以生成url嵌入到你的項目管理工具,ERD的變更也會自動同步穴店。
- Auto layout vs Drawing on canvas manually:很多工具基于畫布上的拖拽來編輯ERD撕捍,這種方式看起來很酷,但是實際使用起來泣洞,如果你的應(yīng)用達(dá)到幾十張表之后忧风,就是災(zāi)難。DrawERD采用自動布局的方式球凰,會根據(jù)你的實體和關(guān)系自動渲染出清新美觀的SVG圖狮腿,同時你可以選擇mode和layout的組合進(jìn)行渲染。
- Database agnostic vs Database binding:一些工具需要依賴數(shù)據(jù)庫連接去反向出數(shù)據(jù)結(jié)構(gòu)呕诉,DrawERD選擇使用靜態(tài)解析的方式,你只需要從你現(xiàn)有數(shù)據(jù)庫導(dǎo)出DDL文件上傳甩挫,對于新建項目贴硫,只需要界面上創(chuàng)建實體和關(guān)系,不依賴任何外鍵和數(shù)據(jù)庫的元信息。
Roadmaps
- Export from ERD to DDL
- Auto generate GraphQL API:根據(jù)模型定義自動生成GraphQL API endpoint英遭,類似firebase
- ERD public hub:提供常用應(yīng)用類型或模塊(如:CRM间护、電商、財務(wù)等)的ERD模板
Demo && Screenshots
<br />
<br />
- Full video here: https://www.loom.com/share/e30d06ba299b43bc8b68f369b47f745a
- Try DrawERD online: https://drawerd.com
- Doc: https://help.drawerd.com
歡迎試用/反饋/吐槽/建議
update: 添加了download和share svg功能
添加了mysql的導(dǎo)入
添加了根據(jù)列名規(guī)則自動生成relation功能