ข้ามไปยังเนื้อหาหลัก
ProgrammerThailand

Tip Yii Framework (Yii1)

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

    สำหรับการออกแบบ ER Diagram หรือ Entity Relationship Diagram นั้นเป็นการออกแบบ Entity หรือตารางในการเก็บข้อมูลในฐานข้อมูล MySQL นั่นเองโดยจะใช้โปรแกรมของ MySQL ที่มีชื่อว่า MySQL Workbench ซึ่งสามารถดาวโหลดได้ที่ http://www.mysql.com/products/workbench/ โดยสามารถดาวโหลดและติดตั้งได้ฟรี

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

การออกแบบ ER Diagram

สร้าง Project ใหม่ ไปที่เมนู File->New Model แล้วเปลี่ยนชื่อ Schema หรือชื่อฐานข้อมูลตามที่ต้องการ

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

แล้วคลิ๊กที่ Add Diagram

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

แล้วใช้เครื่องมือ Create New Table เพื่อสร้างตารางหรือ Entity ใหม่

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

โดยกำหนดให้มีลักษณะของตารางดังนี้ คือ
•    Field แรกมีชื่อว่า id เป็น Primary Key และเป็น Auto Increment
•    ใส่รายละเอียดทั้งหมด เช่น ชนิด ความยาว และใส่ความเห็น (Comment) ของแต่ละ Field ด้วย *** สำคัญมาก ตอนที่ใช้ Gii Generator *** 


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

ใช้เครื่องมือความสำพันธ์ (Relation) เพื่อสร้างความสัมพันธ์แบบต่างๆ

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

เมื่อได้ Diagram ที่ต้องการแล้วจะมีลักษณะดังนี้

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

ก่อนการ Forward Engineering นั้นให้ทำการสร้างฐานข้อมูลก่อน โดยเข้า http://127.0.0.1/phpmyadmin หรือ http://localhost/phpmyadmin

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

จากนั้นคลิ๊กที่ Database แล้วใส่ชื่อฐานข้อมูลตามต้องการ ในที่นี้คือ myyiiapp แล้วเลือการเข้ารหัสตัวอักขระให้เป็น utf8_unicode_ci แล้วกด Create

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

จะปรากฏกล่องข้อความสีเขียวบอกว่าได้สร้างฐานข้อมูล myyiiapp เรียบร้อยแล้ว

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


การ Forward Engineering
    การ Forward Engineering เป็นการนำโครงสร้างจาก ER Diagram ไป Create ในฐานข้อมูลจริง
โดยไปที่เมนู Database->Forward Engineer
การออกแบบ ER Diagram และการ Forward Engineering

จะปรากฏขั้นตอนของการเชื่อมต่อ ให้คลิ๊ก Next ไปได้เลย

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

จะปรากฏ Option เสริม เพื่อเลือกว่าจะลบตารางเก่าออกจากฐานข้อมูลหรือเปล่า ขั้นตอนนี้คลิ๊ก Next ได้เลย

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

จากนั้นจะปรากฏการกรอง ว่าจะ Forward อะไรไปบ้างในที่นี้ใช้หมดทุกอย่างให้คลิ๊ก Next ไปได้เลย

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

จะปรากฏรายการคำสั่ง SQL ซึ่งสามารถ Copy ไว้ได้ ในที่นี้กด Next ไปได้เลย

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

จะปรากฏผลลัพท์ของการ Forward Engineering เรียบร้อยแล้ว โดยจะสังเกตเห็นคำว่า Forward Engineer Finished Successfully

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

ก็เป็นอันเสร็จเรียบร้อยสำหรับการสร้างฐานข้อมูลและการ 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   ประเภทผู้ใช้  

 

ติดปัญหาตอนทำตาม? ถามในชุมชน

ความคิดเห็น (0)

ยังไม่มีความคิดเห็น — เริ่มคุยเป็นคนแรก ถามสิ่งที่สงสัย หรือแชร์ประสบการณ์ของคุณ