PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

ถามเรื่องการ Insert ข้อมูลลง table แบบ master-detail ครับ

ถามเรื่องการ Insert ข้อมูลลง table แบบ master-detail ครับ

 คือออกแบบ db ไว้ โดย table 2 table มีความสัมพันธ์ แบบ master detail ระหว่าง table1 และ table2

โดยที่ table2 จะต้องมี field ที่อ้างอิง มาจาก field ใน table1

เหมือนกับทำ bill กับ bill_detail อะครับ

ทีนี้ข้อมูล ใน bill ต้อง Insert เข้าไปก่อน จากนั้นถึง insert ข้อมูล bill_detail ตามทีหลัง

โดยที 1 bill อาจมี มากกว่า 1bill_detail

 

ที่จะถามคือ ตอน จะ insert ข้อมูล ใน bill_detail จะต้องมีการอ้างอิงถึง id ใน bill 

ปกติแล้วผม จะทำ insert bill ไปก่อน แล้ว จะ selete id from bill order by id desc เพื่อหา id ล่าสุดที่ insert ไป

แล้วถึง เอา id ไป ใช้ใน bill_detail อะครับ

 

มันมีวิธีง่ายๆดีๆกว่านี้รึเปล่าครับ



โดย:  Likit IP: 110.164.187.xxx วันที่: 27-10-2010 เวลา: 10:17:04

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 3

ทำไมไม่ Design ref_field ที่ไม่ใช่ AutoIncrease ครับ
จะลดขั้นตอนได้ และ สามารถ Insert ได้ทันทีทั้ง 2 Table

อาจจะเป็น int หรื smallint
แล้ว selec max(ref)  ออกมา แล้วค่อย insert table1,table2

ผมว่าน่าจะลดขั้นตอนในการ คำนวณของเครื่องด้วย



โดย:  Fossil31 IP: 110.164.107.xxx วันที่: 26-08-2011 เวลา: 18:45:29
 ความคิดเห็นที่ 2

 ขอบคุณครับ ไม่เคยใช้เลย mysql_insert_id 



โดย:  Likit IP: 110.164.187.xxx วันที่: 27-10-2010 เวลา: 12:55:52
 ความคิดเห็นที่ 1

 ถ้า id ของ bill เป็นแบบ autoincrement

ใช้  mysql_insert_id() เพื่อหา id ล่าสุดของ bill ได้
 
เช่น
$q="INSERT ......";
$qr=mysql_query($q);
$ID=mysql_insert_id();
 
จะได้ $ID เป็น id ของ bill ล่าสุด เอาค่านี้ใช้ใช้กับ bill_detail


โดย:  Ninenik IP: 183.89.153.xxx วันที่: 27-10-2010