การออกแบบ ER Diagram และการ Forward Engineering

wave
มานพ กองอุ่น 11 เม.ย. 2016 12:37:43 28,195

    สำหรับการออกแบบ 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   ประเภทผู้ใช้  

 


ความคิดเห็น

หากบทเรียนรู้มีความผิดพลาดประการใด หรือมีข้อเสนอแนะกรุณาแจ้ง contact@programmerthailand.com

เขียนบทเรียนรู้ของคุณ

รายละเอียด
  • ดู 28,195
  • รักเลย 0
  • หมวดหมู่ Tip Yii Framework (Yii1)
  • เขียนเมื่อ
  • แก้ไขเมื่อ
  • Tags yii
ข้อมูลผู้เขียน
มานพ กองอุ่น

มานพ กองอุ่น

เป็นสมาชิกเมื่อ: 18 ธ.ค. 2009

เนื้อหาที่เกี่ยวข้อง