สำหรับการออกแบบ ER Diagram หรือ Entity Relationship Diagram นั้นเป็นการออกแบบ Entity หรือตารางในการเก็บข้อมูลในฐานข้อมูล MySQL นั่นเองโดยจะใช้โปรแกรมของ MySQL ที่มีชื่อว่า MySQL Workbench ซึ่งสามารถดาวโหลดได้ที่ http://www.mysql.com/products/workbench/ โดยสามารถดาวโหลดและติดตั้งได้ฟรี
การออกแบบ ER Diagram
สร้าง Project ใหม่ ไปที่เมนู File->New Model แล้วเปลี่ยนชื่อ Schema หรือชื่อฐานข้อมูลตามที่ต้องการ
แล้วคลิ๊กที่ Add Diagram
แล้วใช้เครื่องมือ Create New Table เพื่อสร้างตารางหรือ Entity ใหม่
โดยกำหนดให้มีลักษณะของตารางดังนี้ คือ
• Field แรกมีชื่อว่า id เป็น Primary Key และเป็น Auto Increment
• ใส่รายละเอียดทั้งหมด เช่น ชนิด ความยาว และใส่ความเห็น (Comment) ของแต่ละ Field ด้วย *** สำคัญมาก ตอนที่ใช้ Gii Generator ***
ใช้เครื่องมือความสำพันธ์ (Relation) เพื่อสร้างความสัมพันธ์แบบต่างๆ
เมื่อได้ Diagram ที่ต้องการแล้วจะมีลักษณะดังนี้
ก่อนการ Forward Engineering นั้นให้ทำการสร้างฐานข้อมูลก่อน โดยเข้า http://127.0.0.1/phpmyadmin หรือ http://localhost/phpmyadmin
จากนั้นคลิ๊กที่ Database แล้วใส่ชื่อฐานข้อมูลตามต้องการ ในที่นี้คือ myyiiapp แล้วเลือการเข้ารหัสตัวอักขระให้เป็น utf8_unicode_ci แล้วกด Create
จะปรากฏกล่องข้อความสีเขียวบอกว่าได้สร้างฐานข้อมูล myyiiapp เรียบร้อยแล้ว
การ Forward Engineering
การ Forward Engineering เป็นการนำโครงสร้างจาก ER Diagram ไป Create ในฐานข้อมูลจริง
โดยไปที่เมนู Database->Forward Engineer
จะปรากฏขั้นตอนของการเชื่อมต่อ ให้คลิ๊ก Next ไปได้เลย
จะปรากฏ Option เสริม เพื่อเลือกว่าจะลบตารางเก่าออกจากฐานข้อมูลหรือเปล่า ขั้นตอนนี้คลิ๊ก Next ได้เลย
จากนั้นจะปรากฏการกรอง ว่าจะ Forward อะไรไปบ้างในที่นี้ใช้หมดทุกอย่างให้คลิ๊ก Next ไปได้เลย
จะปรากฏรายการคำสั่ง SQL ซึ่งสามารถ Copy ไว้ได้ ในที่นี้กด Next ไปได้เลย
จะปรากฏผลลัพท์ของการ Forward Engineering เรียบร้อยแล้ว โดยจะสังเกตเห็นคำว่า Forward Engineer Finished Successfully
ก็เป็นอันเสร็จเรียบร้อยสำหรับการสร้างฐานข้อมูลและการ Forward Engineering
orders
Table comments: orders
Column | Type | Null | Default | Comments |
---|---|---|---|---|
id | int(11) | No | ||
order_date | datetime | No | วันที่สั่งซื้อ | |
total | int(11) | No | รวมเป็นเงิน | |
user_id | int(11) | No | ผู้สั่งซื้อ | |
first_name | varchar(100) | No | ชื่อผู้รับ | |
last_name | varchar(100) | No | นามสกุลผู้รับ | |
order_address | text | No | ที่อยู่ผู้รับ | |
order_province | varchar(100) | No | จังหวัดผู้รับ | |
order_zipcode | varchar(5) | No | รหัสไปรษณีย์ผู้รับ |
orders_has_products
Table comments: orders_has_products
Column | Type | Null | Default | Comments |
---|---|---|---|---|
order_id | int(11) | No | ใบสั่งซื้อ | |
product_id | int(11) | No | สินค้า | |
quantity | int(11) | No | จำนวน | |
price | int(11) | No | ราคา |
product_types
Table comments: product_types
Column | Type | Null | Default | Comments |
---|---|---|---|---|
id | int(11) | No | ||
product_type | varchar(100) | No | ประเภทสินค้า |
products
Table comments: products
Column | Type | Null | Default | Comments |
---|---|---|---|---|
id | int(11) | No | ||
product_name | varchar(100) | No | ชื่อสินค้า | |
product_price | int(11) | No | ราคาสินค้า | |
product_type_id | int(11) | No | ประเภทสินค้า |
users
Table comments: users
Column | Type | Null | Default | Comments |
---|---|---|---|---|
id | int(11) | No | ||
firstname | varchar(100) | No | ชื่อ | |
lastname | varchar(100) | No | นามสกุล | |
username | varchar(45) | No | Username | |
Password | varchar(45) | No | Password | |
address | text | No | ที่อยู่ | |
province | enum('กรุงเทพมหานคร', 'อุบลราชธานี') | No | จังหวัด | |
zipcode | varchar(5) | No | รหัสไปรษณีย์ | |
created | datetime | No | สมัครสมาชิกเมื่อ | |
user_type | enum('admin', 'user') | No | user ประเภทผู้ใช้ |
ความคิดเห็น