Parinya.NET

บล็อกของสาวกแห่งลัทธิ Software as a Service

Archive for the 'Database' Category

ตีความฐานข้อมูลแบบย้อนกลับ

ปรกติแล้วถ้าเราต้องออกแบบฐานข้อมูล เราก็จะมีโจทย์เป็นฉาก ๆ ที่ต้องเอามาคิด จากนั้นก็ร่างความคิดออกมาเป็นความสัมพันธ์ของตาราง ตามหลักการของ Database Normalization (อันแสนจะเข้าใจยาก) ทีนี้ถ้าเปลี่ยนใหม่ล่ะ เปลี่ยนเป็นว่าความสัมพันธ์ของตารางถูกวาดออกมาแล้ว แล้วเราต้องมาอธิบายความสัมพันธ์ดังกล่าวให้อยู่ในรูปของการพรรณนาแทน แบบนี้จะทำไงดี … งั้น มาลองดูกันดีกว่า โจทย์ – จงอธิบายภาพความสัมพันธ์ของตารางในภาพข้างล่างพอสังเขป กดเพื่อดูภาพขยาย

18 กรกฎาคม 2009 at 23:39 - Comments
Tai Parinya
เปล่าอ่ะคุณ crucifier พอดีเห็นว่าเครื่องมือมันแสดงภาพสวยดี ก็เลยเอามาประยุกต์ใช้กับหัวข้อนี้อ่ะจ้า ง่ะ ผมเป็นเพียงสามัญชนเท่านั้นครับคุณ bin ส่วนไม่ได้สมรสกันมันเป็นเรื่องของชะตาลิขิตง่ะ น่าจะเป็นเช่นนั้นอ่ะคุณเน็ต โอ้ว คิดไปได้นะคุณ 7 (แต่จริง ๆ ผมคิดเรื่อง ... หมู่มากกว่า อิ อิ :-P) มองได้ทะลุจริง ๆ คุณ IRONKONG ...
21 กรกฎาคม 09 at 14:14
IRONKONG
งั้นเพิ่มในส่วนของตาราง"สมรส"ดีมั้ยพี่ ให้มีการบอกสถานะการสมรส แล้วส่วน "พลเมืองสามารถสมรสซ้อนได้ และสามารถจดทะเบียนสมรสเกินกว่าหนึ่งครั้งได้" นี่ก็แจ้งไปว่า ขณะนี้ทะเบียนสมรสของ "นาย A กับ นาง B(ที่เราไม่รู้ว่าจริงๆแล้ว นาง B เป็นหญิงหรือชาย) นาย A ได้ยอบรับว่าตนเป็นแม่" เผื่อในกรณีทะเบียนสมรสอีกใบเขาอยากรับบทเป็นพ่อบ้าง
25 กรกฎาคม 09 at 15:28

เครื่องมือออกแบบ Data Dictionary

ผมกำลังทำงานอดิเรกสนุก ๆ ชิ้นหนึ่งอยู่ โดยวางแผนไว้ว่าจะต้องใช้เวลาในการออกแบบและจัดสร้างประมาณ 1 ปี เพราะต้องเขียนแผนธุรกิจ, เขียนพิมพ์เขียว, ออกแบบ Data Dictionary, ออกแบบ GUI, สร้างซอฟต์แวร์ ฯลฯ อือม ช่างเป็นงานอดิเรกที่กินเวลายาวนานจริง ๆ ทีนี้ที่จะเล่าให้อ่านกันก็คือการทำ Data Dictionary ซึ่งเป็นสิ่งที่ผมไม่ค่อยจะถนัดเท่าไหร่ เนื่องจากทุกวันนี้ผมยังท่องกฎของ Database Normalization ไม่ได้เลย ดังนั้น วิธีแก้ไขก็คือการใช้เครื่องมือเข้าช่วย ซึ่งเป็นโชคดีของผมที่มีผู้สาวจัดหาเครื่องมือมาให้ใช้ โดยเครื่องมือดังกล่าวมีชื่อว่า fabFORCE DBDesigner …มันเป็นเครื่องมือทุ่นแรงที่ดี เพราะถ้าไม่มีมัน การออกแบบ Data Dictionary คงสาหัสขึ้นอีกอักโข แถมข้อดีอีกอย่างหนึ่งของมันก็คือ มันสนับสนุน MySQL ซะด้วยสิ ยิ่งดีเข้าไปใหญ่!!! แต่เหนือสิ่งอื่นใด การออกแบบ Data Dictionary ก็ยังคงขึ้นกับจินตนาการของผู้ออกแบบอยู่ดี ดังนั้น ต่อให้มีเครื่องมือดีแค่ไหนก็ตาม .. แต่ทว่า .. หากจินตนาการของเราตีบตัน เครื่องมือก็ย่อมจะไม่สามารถช่วยเหลืออะไรเราได้อยู่ดี! [...]

14 กรกฎาคม 2009 at 20:30 - Comments
ผมใช้ ดินสอ กับ กระดาษสมุด อ่ะ ผมโลววว์ไปเปล่าเนี่ยย - -'
16 กรกฎาคม 09 at 23:40
Tai Parinya
ผมก็ชอบของฟรีครับคุณ figaro อิ อิ :-P ผมลองไปดาวน์โหลดมาติดตั้งแล้วนะคุณ sdayu, คุณ icy7, คุณ AMp และก็พบว่า ... มันจะเอา .NET Framework รุ่น 2.0 อ่ะ T-T แต่ที่เครื่องไม่มี ...
17 กรกฎาคม 09 at 13:41

ยังไงซะ!!! ฐานข้อมูลก็ยังคงสำคัญอยู่ดี

หลังจากอ่านเอกสารเกี่ยวกับ Amazon S3, Amazon EC2 และ Amazon SimpleDB มาจนสมองน่วม ก็ทำให้รู้ว่าแสงสว่างรำไรยังมีอยู่!!! ถ้าอยากจะใช้ฐานข้อมูล MySQL ก็สามารถจะติดตั้งลงใน Amazon EC2 ได้ .. แต่ .. ต้องลงตัว MySQL Enterprise นะเอ้อ! แล้วก็ต้องจ่ายตังค์ให้กับความ Enterprise ของมันด้วย T-T ซึ่งคิดว่าคงไม่น้อย (ยังไม่ได้ตรวจราคา) แต่ถ้าไม่อยากจ่าย อยากจะใช้ Amazon SimpleDB ก็ได้ แต่งานนี้รับรองหลังแอ่นแน่ ๆ เพราะ Amazon SimpleDB มันไม่ได้เป็น RDBMS มันก็เลยไม่มีอะไร ๆ ที่ RDBMS ทั่ว ๆ ไปเขามี ซึ่งสิ่งที่ขาดหายไปและถือว่าร้ายแรงที่สุดก็คือ มันไม่มี INDEX อ่ะดิ! แล้วจะให้ทำ RDBMS เองเหรอ [...]

18 เมษายน 2009 at 21:33 - Comments
Tai Parinya
อ๊ะจริงดิคุณ AMp ผมไม่รู้เลยอ่ะ พอดีผมไม่ได้สนใจ Google App Engine เลย T-T มันดีกว่าตรงที่ถ้ามันล่ม เขาจะเข้ามากู้ให้, ถ้ามันอืด เขาจะเข้ามาปรับให้, ถ้ามันไม่เหมาะสม เขาจะเข้ามาแนะนำให้ ... กระมังครับคุณพีกับยู ผมชอบ SimpleDB ตรงที่เขาคิดค่าบริการอย่างมีหลักมีการนี่แหล่ะคุณ Goo :-) โหย ...
21 เมษายน 09 at 17:11
พี่ไท้ไม่เคยดู Google App Engine ผมก็ไม่เคยดู AWS เหมือนกันครับ สงสัยต้องเริ่มดูบ้างซะแล้ว - -''
22 เมษายน 09 at 09:16

กฎการ select ข้อมูลจาก table ใหญ่ ๆ ในฐานข้อมูล mysql

ผลลัพธ์อันเลวร้ายที่เกิดกับการ select ข้อมูลจาก table ใหญ่ ๆ ในฐานข้อมูลมีอยู่สถานเดียวนั่นก็คือ .. ช้าโคตร ๆ ๆ ๆ ๆ ยิ่งถ้ามีคนร่วมด้วยช่วยกัน select แล้วล่ะก็ ต้องบอกว่า .. ช้าโคตร ๆ ๆ ๆ ๆ ยกกำลังด้วยจำนวนคนที่ค้น!!! ดังนั้นหากเราไม่อยากจะเจอกับเรื่องเลวร้ายเช่นนี้ งั้นเรามาทราบกฎกันดีกว่า ว่าเราควรจะทำยังไงกันดี? กฎข้อแรก อย่าออกแบบตามหลักการ Normalization เพราะการแยกข้อมูลกระจายไว้ตาม table ต่าง ๆ ตามหลักการ Normalization นั้น มันดูดี๊ดูดีในทางทฤษฎี แต่มันใช้ไม่ได้เลยในทางปฏิบัติ โดยเฉพาะหากต้อง join table เยอะ ๆ ซึ่งมีข้อมูลมาก ๆ หรือใช้ subquery แล้วล่ะก็ … ไอ้ Normalization เนี่ยแหล่ะ มันจะรัดคอตัวมันเอง กฎข้อสอง [...]

5 เมษายน 2009 at 13:18 - Comments
โอ้วววว มีคนใช้คล้าย ๆ กันด้วย ขอบคุณครับที่ทำให้รู้ว่า มีคีย์เวร์ด ก่อนหน้า field ด้วย อิอิ
9 เมษายน 09 at 21:23
ขอบคุณครับ ผมกำลังใช้งานอยู่เลย
10 เมษายน 09 at 23:20

การ Import, ไฟล์ UTF-8, phpMyAdmin และ MySQL

จดไว้กันลืม เพราะผมไม่ค่อยได้ลงมาทำทางเทคนิคบ่อยนัก พอดีว่าต้องเอาข้อมูลมายัดใส่ฐานข้อมูล MySQL แต่บังเอิญว่าไม่ได้ทำนานแล้ว เลยทำผิด ๆ ถูก ๆ หลง ๆ ลืม ๆ ต้องลองหลายรอบกว่าจะได้ เลยคิดว่าเอามาสาธยายเป็นขั้นเป็นตอนไว้ดีกว่า เผื่อคนอื่นจะได้รับอานิสงค์ไปด้วย ขั้นตอนการ Import ไฟล์ UTF-8 เข้าฐานข้อมูล MySQL ด้วย phpMyAdmin เปิด Notepad++ แล้วเลือกเข้ารหัสเป็น “UTF-8 without BOM” สำเนาข้อมูลจาก Microsoft Excel มาใส่ไว้ใน Notepad++ แล้วบันทึก สร้างโครงสร้างตารางแบบ UTF-8 เตรียมไว้ในฐานข้อมูลด้วย phpMyAdmin ทำการ Import ไฟล์ UTF-8 without BOM ที่บันทึกเอาไว้เข้าฐานข้อมูล MySQL โดยบอกมันว่าไฟล์ที่จะนำเข้า เป็นไฟล์ที่เข้ารหัสแบบ Latin1 หรือ Cp1252 (ยุโรปตะวันตก) พอ [...]

6 พฤศจิกายน 2008 at 21:42 - Comments
Tai Parinya
โอ๋ คุณพีทเองก็เป็นพลเรือน Mac ด้วยเหรอเนี่ย อือม ได้ยินมาว่าเครื่อง Mac แพงโคตร ๆ เลยอ่ะ สงสัยมันจะดี อะไร "เมพ" อ่ะคุณ AMp เขียนผิดป่ะเนี่ย :-P
8 พฤศจิกายน 08 at 12:38
Notepad++ สามารถเปิดไฟล์ขนาดใหญ่ๆได้รึป่าวครับ ปรกติผมก็แปลง cp1251 เป็น utf-8 อยู่บ้างโดยอาศัย dreamweaver เอาแต่มีปํญหาตรงที่ dream มันเปิดไฟล์ใหญ่ๆไม่ค่อยจะไหว แต่ผมเปิดด้วย edit plus ได้ เสียดายที่ edit plus มันบอกไม่ได้ว่าจะให้อ่านไฟล์ด้วย encode อะไร
9 พฤศจิกายน 08 at 03:35