|
|
|
[sql] ถามเรื่องการ design ความสัมพันธ์ตารางที่ใช้ CASCADE |
|
|
|
|
|
|
|
หลักการที่พูดถึงใช่เลยครับ ลบตารางแม่ ตารางลูกตามไปด้วยครับ ถ้าใช้ Mysql ต้องเป็น INNODB เท่านั้นครับ ผมแนะนำทดสอบง่ายๆ ก่อนครับ เช่น
member
----------
idmember
membername
idstatus
status
----
idstatus
statusname
กรอกข้อมูลในตาราง status และ member (ตามลำดับ) แล้วลองลบข้อมูลในตาราง status ครับ (ละเอียดเกินไปหรือเปล่าครับ)
ถ้ายังไม่ได้ค่อยว่ากันต่อภาค 2 ครับ (ปล. ปัญหาส่วนใหญ่ที่ผมเจอส่วนมากจะไม่ปรับตารางเป็น INNODB มากกว่าครับ)
|
|
|
|
|
Date :
2012-03-18 07:28:45 |
By :
bshtraining |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมปรับเป็น INNODB แล้วครับ ผมแก้ได้แล้วครับ
คือต้องลบตารางทั้งหมดแล้ว พอสร้างตารางใหม่ ต้อง set FK ON DELETE CASCADE ให้ตารางก่อนเลย
ถ้าแบบ insert ข้อมูลเข้าไปก่อน แล้วมา ALTER TABLE เป็น fk cascade ทีหลัง มันจะ error แบบด้านบน
แล้วจากที่ผม กำหนด cascadeแบบด้านบน มันจะตามลบเป็นทอดๆได้ไหมครับ
เช่นผมลบ employee มันก็จะไปลบ sale_order
พอ sale_order ถูกลบ มันจะไปลบ product_order ต่อให้เลยไหมครับ
(หมายถึง row ที่สัมพันธ์กันนะครับ)
แล้วปกติถ้าสินค้าโดนลบ ใบสั่งขายควรโดนลบไหมอ่า = ="
ถ้าไม่ลบใบสั่งขายเวลาไป select ใบที่ สินค้าหาย มันจะ error ไหมเนี่ย
|
|
|
|
|
Date :
2012-03-18 13:21:39 |
By :
someday |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|