Tags:

คือเวลาเขียน ER Diagram โอเค เข้าใจ เขียนได้

แต่พอจะแปลงมาเป็น query string เอ่อ....งง เลยครับ

มีใครพอจะมีตัวอย่างบ้างครับ ผมพยายามหาใน google เป็นภาษาอังกฤษแล้วก็ยังไม่ได้อยู่ดี...

สงสัยมากเลยตอนนี้ จะทำเช่นไร....

Get latest news from Blognone
By: PaPaSEK
ContributorAndroidWindowsIn Love
on 12 September 2012 - 09:02 #471910
PaPaSEK's picture

ถ้าเป็น SQL

ความสัมพันธ์ที่คุณกล่าวถึงมันเป็นความสัมพันธ์เชิง concept ครับ เวลาเขียน SQL ก็ไม่จำเป็นต้องใช้ operator อะไรพิเศษ มันอยู่ที่การใช้ constraint ในการควบคุมข้อมูลที่เข้ามาไม่ให้ซ้ำกันมากกว่า

เช่น [table company] 1:M [table employee]

  • ที่ table company ตั้ง company.companycode เป็น PK เพื่อให้ companycode ไม่ซ้ำกันใน table

  • ที่ table employee ตั้ง employee.companycode + employee.employeecode เป็น UK เพื่อให้ companycode + employeecode จับคู่กันได้อย่างละครั้ง (เพราะต่างบริษัทอาจมี employeecode เหมือนกัน)

เวลาเขียน SQL

SELECT * FROM company, employee WHERE company.companycode=employee.companycode

ก็เขียนธรรมดาๆ แบบนี้เองครับ มันก็ออกเป็น 1:M

แต่ถ้าเราไม่คุมข้อมูลที่จะถูก INSERT เข้ามาใน table แล้วปล่อยให้ข้อมูลมันซ้ำซ้อน เขียนให้ตายก็ไม่ตรง concept ครับ

ปล. หวังว่าผมจะไม่ปล่อยเป็ดไก่นะ

By: EThaiZone
ContributorAndroidUbuntuWindows
on 12 September 2012 - 10:25 #471958 Reply to:471910
EThaiZone's picture

สรุปได้ชัดครับ มันเป็น concept ผมว่าไม่มีไก่หลุดครับ 555+

ส่วนเรื่องการเขียน SQL มันไม่ตายตัว อย่างตัวอย่างข้างบนนี้ ยังเขียนแบบ join table ก็ได้ ซึ่งเดี๋ยวจะมีคำถามว่าแล้วจะเขียนแบบไหนดี ในเมื่อมันทำงานได้เหมือนกัน ซึ่งอนาคตถ้ามองระดับลึกไปอีก จะเป็นเรื่องการรีด performance ด้วย เช่น บางเคส join จะทำงานช้ากว่าแบบข้างบน แต่บางเคสก็กลับกัน เลยต้องกลับมา basic สุดๆ คือ การ test run แล้วค่อยทำ optimization


มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 12 September 2012 - 10:48 #471984 Reply to:471958
PaPaSEK's picture

อ่า ... ขอบคุณที่เสริมครับ

ขอโทษเจ้าของกระทู้ด้วย ... ผมลืมบอกว่าผมมาทาง Oracle มันไม่มี join แบบที่เป็น command

By: saknarak
Android
on 14 September 2012 - 08:15 #473305 Reply to:471984
saknarak's picture

oracle ทำ join ได้ตั้งแต่ 9i แล้วครับ

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 14 September 2012 - 10:27 #473357 Reply to:473305
PaPaSEK's picture

เขินจัง บริษัทใช้ 8.0.3

ตรูจะบ้าาาาาาาา