更改新的方案默認(rèn)名稱為訂單。注意,當(dāng)你鍵入方案名時(shí),在 Physical Schemata 上的標(biāo)簽名也會(huì)隨之改變——這是一個(gè)很好的特性。
訂單方案被增加到目錄(Catalog)中 (圖中紅色圈住的部分)。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image3.png" real_src="http://www.packtpub.com/files/images/workbench-article-image3.png">
重命名方案后關(guān)閉 schema 窗口。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image4.png" real_src="http://www.packtpub.com/files/images/workbench-article-image4.png">
創(chuàng)建訂單表
我們現(xiàn)在創(chuàng)建訂單模型中的三個(gè)表:ORDER 表以及它的兩個(gè)子表 SALES_ORDER 和PURCHASE_ORDER。首先,確信你已經(jīng)選擇了 ORDER 方案的標(biāo)簽,這樣,我們創(chuàng)建的表才會(huì)包含于這個(gè)方案。
我們將要?jiǎng)?chuàng)建的表是作為 EER 圖表展示的(EER = Enhanced Entity Relationship)。所以,雙擊 Add Diagram 按鈕。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image5.png" real_src="http://www.packtpub.com/files/images/workbench-article-image5.png">
單擊 Table 圖標(biāo),然后移動(dòng)鼠標(biāo)到 EER Diagram 區(qū)域,在你想放置第一個(gè)表的位置上單擊鼠標(biāo)。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image6.png" real_src="http://www.packtpub.com/files/images/workbench-article-image6.png">
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image7.png" real_src="http://www.packtpub.com/files/images/workbench-article-image7.png">
對(duì)于其他兩個(gè)表,重復(fù)上面的操作。你可以通過拖拽來移動(dòng)表的位置。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image8.png" real_src="http://www.packtpub.com/files/images/workbench-article-image8.png">
下一步,我們要對(duì) table1 做一些操作,這些操作是通過 Workbench 的表編輯器完成的。要打開表編輯器,只需右鍵選擇 table1 并選擇 Edit Table 菜單。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image9.png" real_src="http://www.packtpub.com/files/images/workbench-article-image9.png">
鍵入 table1 的表名 ORDER 。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image10.png" real_src="http://www.packtpub.com/files/images/workbench-article-image10.png">
接下來,增加列(字段)。選擇 Columns 標(biāo)簽。將列名(字段名) idORDER 更改為 ORDER_NO.
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image11.png" real_src="http://www.packtpub.com/files/images/workbench-article-image11.png">
在下拉列表框中選擇數(shù)據(jù)類型 INT 。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image12.png" real_src="http://www.packtpub.com/files/images/workbench-article-image12.png">
我們希望 ORDER_NO 列的值可以被 MySQL 數(shù)據(jù)庫(kù)自動(dòng)控制,所以,我們選定 AI 列 (Auto Increment——自增量).
AI 是 MySQL 數(shù)據(jù)庫(kù)的一個(gè)特性。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image13.png" real_src="http://www.packtpub.com/files/images/workbench-article-image13.png">
你也可以指定表的其他物理屬性,例如它的 Collation 屬性;當(dāng)然可以指定表的其他高級(jí)選項(xiàng),例如 trigger 和 portioning (分別對(duì)應(yīng) Trigger 和 Partioning 標(biāo)簽)。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image14.png" real_src="http://www.packtpub.com/files/images/workbench-article-image14.png">
注意,這時(shí),在 diagram 中我們表 table1 已經(jīng)改變?yōu)?ORDER,并且,它有一個(gè)列(字段)ORDER_NO。在目錄中,你也可以看到有三個(gè)表。
在表右側(cè)的黑點(diǎn),表示它們包含在一個(gè)圖表中。
如果你展開 ORDER ,你可以看到 ORDER_NO 列。因?yàn)槲覀兌x它為主鍵,所以在它左側(cè)有一個(gè) key 圖標(biāo)。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image16.png" real_src="http://www.packtpub.com/files/images/workbench-article-image16.png">
回到表設(shè)計(jì)器,增加其他兩列(字段):ORDER_DATE 和 ORDER_TYPE。ORDER_TYPE 可以有兩個(gè)值:S 表示銷售訂單,P 表示采購(gòu)訂單。由于銷售訂單是更常用的,所以我們指定列(字段)的默認(rèn)值為 S 。
你可以在最后一列的下面白色區(qū)域雙擊鼠標(biāo)來增加下一個(gè)字段。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image17.png" real_src="http://www.packtpub.com/files/images/workbench-article-image17.png">
使用同樣的方式來創(chuàng)建 SALES_ORDER 表及其中的列(字段)。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image18.png" real_src="http://www.packtpub.com/files/images/workbench-article-image18.png">
最后,創(chuàng)建 PURCHASE_ORDER 表及其中的列(字段)。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image19.png" real_src="http://www.packtpub.com/files/images/workbench-article-image19.png">
創(chuàng)建關(guān)系
我們已經(jīng)創(chuàng)建了三個(gè)表。到這里并沒有結(jié)束;我們?nèi)耘f需要?jiǎng)?chuàng)建它們的關(guān)系。
SALES_ORDER 是 ORDER 的子表,意味著它們是 1:1 ,SALES_ORDER 為子表, ORDER 為父表,并將 ORDER 的鍵移動(dòng)到 SALES_ORDER 。所以,選擇(單擊)1:1 identifying relationship 圖標(biāo),然后在 SALES_ORDER 表上單擊,再在 ORDER 表上單擊。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image20.png" real_src="http://www.packtpub.com/files/images/workbench-article-image20.png">
注意,當(dāng)你在單擊表時(shí),圖標(biāo)將變?yōu)閹в?1:1 關(guān)系的手型。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image21.png" real_src="http://www.packtpub.com/files/images/workbench-article-image21.png">
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image22.png" real_src="http://www.packtpub.com/files/images/workbench-article-image22.png">
1:1 關(guān)系就是這樣設(shè)置的;ORDER_NO 主鍵被移動(dòng)到 SALES_ORDER 表并作為它的主鍵。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image23.png" real_src="http://www.packtpub.com/files/images/workbench-article-image23.png">
下一步,創(chuàng)建 PURCHASE_ORDER 到 ORDER 的關(guān)系,它仍舊是 1:1 關(guān)系。
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image24.png" real_src="http://www.packtpub.com/files/images/workbench-article-image24.png">
我們現(xiàn)在已經(jīng)完成了表及表之間關(guān)系的設(shè)計(jì);將我們的模型保存為 ORDER.mwb.
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image25.png" real_src="http://www.packtpub.com/files/images/workbench-article-image25.png">
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image26.png" real_src="http://www.packtpub.com/files/images/workbench-article-image26.png">
生成 DDL 和數(shù)據(jù)庫(kù)
最終在本文設(shè)計(jì)數(shù)據(jù)模型的目的是為了建立 MySQL 數(shù)據(jù)庫(kù)。我們將首先生成 DDL(SQL CREATE script),然后執(zhí)行這個(gè)腳本。
從 File | Export 菜單中,選擇 Forward Engineer SQL CREATE Script.
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image27.png" real_src="http://www.packtpub.com/files/images/workbench-article-image27.png">
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image28.png" real_src="http://www.packtpub.com/files/images/workbench-article-image28.png">
<IMG title="MySQL Workbench的使用教程 (初級(jí)入門版)" alt="" src="http://www.packtpub.com/files/images/workbench-article-image29.png" real_src="http://www.packtpub.com/files/images/workbench-article-image29.png">
最后,執(zhí)行保存的 SQL CREATE 腳本。MySQL Workbench 自身并沒有執(zhí)行這個(gè)腳本的能力;我們可以在 MySQL 命令控制臺(tái)中來執(zhí)行它。
你也可以在其中來查看表是否已經(jīng)被創(chuàng)建。
總結(jié)
這篇文章向你展示了在 MySQL Workbench 中如何可視的建立 MySQL 物理數(shù)據(jù)模型,并使用它來創(chuàng)建一個(gè) MySQL 數(shù)據(jù)庫(kù)。