mysql workbench是一款專為mysql設計的er/資料庫模組化工具。它是著名的資料庫設計工具dbdesigner4的繼任者。
mysql workbench 是 mysql ab 最近釋放的可視資料庫設計工具。這個工具是設計 mysql 資料庫的專用工具。
mysql workbench 是 mysql 最近釋放的可視資料庫設計工具。這個工具是設計 mysql 資料庫的專用工具。
你在 mysql workbench 中建立的被稱之為實體資料模型。一個實體資料模型是針對一個特定 rdbms 産品的資料模型;本文中的模型将具有一些 mysql 的獨特規範。我們可以使用它生成(forward-engineer)資料庫對象,除了包含表和列(字段)外,也可以包含視圖。
mysql workbench 擁有很多的功能和特性;這篇由 djoni darmawikarta寫的文章通過一個示例展現了其中的一些。我們将針對一個訂單系統建立一個實體資料模型,這裡的訂單系統可以是銷售單也可以是訂單,并且使用 forward-engineer(正向引擎) 将我們的模型生成為一個 mysql 資料庫。
我們的示例中使用 mysql workbench 建立的實體模型看上去就像下圖這樣:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLhRmYwYmNzYWMmNWMtkzN0gTLwADNz0CZjRGNtMzYwEmYwIGNvwVOwQTO1UzLcRnbl1GajFGd0F2LcRWYvxGc19CXt92YuUWelRXauwGZvw1LcpDc0RHaiojIsJye.png)
建立訂單方案(order schema)
首先讓我們來建立一個儲存訂單實體模型的方案。點選 + 按鈕(紅色标注的地方)
更改新的方案預設名稱為訂單。注意,當你鍵入方案名時,在 physical schemata 上的标簽名也會随之改變——這是一個很好的特性。
訂單方案被增加到目錄(catalog)中 (圖中紅色圈住的部分)。
重命名方案後關閉 schema 視窗。
建立訂單表
我們現在建立訂單模型中的三個表:order 表以及它的兩個子表 sales_order 和purchase_order。首先,确信你已經選擇了 order 方案的标簽,這樣,我們建立的表才會包含于這個方案。
我們将要建立的表是作為 eer 圖表展示的(eer = enhanced entity relationship)。是以,輕按兩下 add diagram 按鈕。
單擊 table 圖示,然後移動滑鼠到 eer diagram 區域,在你想放置第一個表的位置上單擊滑鼠。
對于其他兩個表,重複上面的操作。你可以通過拖拽來移動表的位置。
下一步,我們要對 table1 做一些操作,這些操作是通過 workbench 的表編輯器完成的。要打開表編輯器,隻需右鍵選擇 table1 并選擇 edit table 菜單。
鍵入 table1 的表名 order 。
接下來,增加列(字段)。選擇 columns 标簽。将列名(字段名) idorder 更改為 order_no.
在下拉清單框中選擇資料類型 int 。
我們希望 order_no 列的值可以被 mysql 資料庫自動控制,是以,我們標明 ai 列 (auto increment——自增量).
ai 是 mysql 資料庫的一個特性。
你也可以指定表的其他實體屬性,例如它的 collation 屬性;當然可以指定表的其他進階選項,例如 trigger 和 portioning (分别對應 trigger 和 partioning 标簽)。
注意,這時,在 diagram 中我們表 table1 已經改變為 order,并且,它有一個列(字段)order_no。在目錄中,你也可以看到有三個表。
在表右側的黑點,表示它們包含在一個圖表中。
如果你展開 order ,你可以看到 order_no 列。因為我們定義它為主鍵,是以在它左側有一個 key 圖示。
使用同樣的方式來建立 sales_order 表及其中的列(字段)。
最後,建立 purchase_order 表及其中的列(字段)。
建立關系
我們已經建立了三個表。到這裡并沒有結束;我們仍舊需要建立它們的關系。
sales_order 是 order 的子表,意味着它們是 1:1 ,sales_order 為子表, order 為父表,并将 order 的鍵移動到 sales_order 。是以,選擇(單擊)1:1 identifying relationship 圖示,然後在 sales_order 表上單擊,再在 order 表上單擊。
注意,當你在單擊表時,圖示将變為帶有 1:1 關系的手型。
1:1 關系就是這樣設定的;order_no 主鍵被移動到 sales_order 表并作為它的主鍵。
下一步,建立 purchase_order 到 order 的關系,它仍舊是 1:1 關系。
我們現在已經完成了表及表之間關系的設計;将我們的模型儲存為 order.mwb.
生成 ddl 和資料庫
最終在本文設計資料模型的目的是為了建立 mysql 資料庫。我們将首先生成 ddl(sql create script),然後執行這個腳本。
從 file | export 菜單中,選擇 forward engineer sql create script.
最後,執行儲存的 sql create 腳本。mysql workbench 自身并沒有執行這個腳本的能力;我們可以在 mysql 指令控制台中來執行它。
你也可以在其中來檢視表是否已經被建立。
總結
這篇文章向你展示了在mysql workbench 中如何可視的建立 mysql 實體資料模型,并使用它來建立一個 mysql 資料庫。