เืมื่อเราติดตั้งเสร็จสรรพ์เรียบร้อยแล้ว สำหรับผู้ใช้งานทั่วไป ก็คงต้องไปลุยกันต่อเรื่องการใช้งานกันเลย แต่ผมขอเสริมสำหรับผู้ที่สนใจที่จะดัดแปลง  ปรับแต่ง หรือเล่นกับ wordpress ชนิดที่ว่า ถึงลูกถึงคนกันเลยก็ว่าได้  จำเป็นอย่างยิ่งที่จะต้องรู้สิ่ง ๆ นี้ครับ  นั่นก็คือ โครงสร้างดาต้าเบสที่เขาได้ผ่านการ NF1 ….. NF3    ถ้าได้ข้อมูลตรงนี้จะช่วยในการพัฒนาได้เยอะทีเดียว เพราะฉนั้นโปรดติดตาม

ก่อนอื่นให้เข้าสู่ phpmyadmin เราแล้วเลือกไปที่ชื่อฐานข้อมูลที่เราใช้เป็นของ wordpress ครับ สิ่งแรกที่เราจะเห็นคือ จำนวนดาต้าเบสที่ใช้ ว่ามีด้วยกันทั้งหมด 11 ตาราง จากการไล่เช็คมา 2 เวอร์ชั่นล่าสุด เหมือนกันทุกประการครับ ดังภาพ

wp-database

พอมองด้านขวามือ จะเห็นรายละเอียดของแต่ละตาราง ว่าใช้งานไปเท่าไหร่แล้ว  แต่สิ่งที่ผมอยากให้สังเกต และควรจะพึ่งตรวจสอบคือ รูปแบบ Encoding ของข้อมูล เราอาจจะใช้เป็น TIS-620 หรือ Window874  ก็ไม่ว่ากัน   แต่สำหรับข้อมูลหรือมาตรฐานทุกวันนี้ อยากให้ใช้ UTF-8 มากกว่าครับ (ถึงแม้จะมีปัญหาการ sort ภาษาไทย ก็ตาม) เพราะมีข้อดีหลายประการด้วยกัน ลองค้นหาจากกูเกิลก็ได้ มีผู้กล่าวไว้ค่อนข้างเยอะแล้ว (ฝึกทักษะการค้นหาไปด้วยครับ)

wp-database

เริ่มจาก wp_commentmeta  ซึ่งก็คือ พวก key และ value ที่เราสามารถเสริมให้กับ comment นั่นแหละครับ จะใช่กี่อัน กี่ชื่อ กี่ตัวแปร ก็ย่อมทำได้ เพราะมันได้แยกออกมาจาก comment โดยอิสระเลย สังเกตจาก FK  -> comment_id เป็นหลัก (คนที่งง ผมต้องขออภัย พยายามเลี่ยงศัพท์เทคนิคแ้ล้ว)

wp-database

นี่คือตาราง wp_comments ครับ ซึ่งก็จะเก็บว่า

  • เป็นคอมเม็นต์ของของบทความไหน comment_post_ID
  • และเขียนโดยใคร  comment_author
  • อีเมล์คนเขียนว่ายังไง comment_author_email
  • คนเขียนมีเว็บไซต์ไหม ถ้ามีก็ใส่ comment_author_url
  • คนเขียนมาจากแห่งหนใหนในโลกไซเบอร์ (IP_Address)  comment_IP  (ทำอะไรโปรดระวัง มันสามารถเก็บได้มากกว่านี้)
  • วันที่คอมเม็นต์  comment_date
  • วันที่คอมเม็นต์เหมือนกัน แต่อันนี้ผมไม่ค่อยได้ใช้ และก็งงอยู่ 555   comment_date_gmt (แต่เห็นมันใส่ตรงกับอันก่อนประจำ)
  • เนื้อหาคอมเม็นต์ที่จะให้คนอื่นอ่าน เขียนไป  comment_content
  • อันนี้ก็ยังไ่ม่ค่อยได้ใช้ ถ้ามีคนรู้วานบอกผมที  comment_karma
  • อนุญาตให้เอาขึ้นไหม  ให้ก็กำหนด 1 ไม่ให้ก็ใส่ 0   comment_approved
  • อันนี้เข้าใจว่าใช้ร่วมกับพวกเครื่องมือสื่อสารประเภท มือถือ (เดานะ)  comment_agent
  • ประเภทของคอมเม็นต์  comment_type
  • อืมมม อันนี้กรณีที่เราเปิดให้คอมเม็นต์ แบบว่า ๆ  เคยเห็นใน SMF หรือไม่ก็ drupal เปล่า ตอบคนก่อนอ่ะครับ ฮิ ๆ มันจะไม่ต่อท้ายเสมอ จะไปต่อที่เราอยากตอบเลย comment_parent
  • ใครใช้ดีละ  user_id

wp-database

เมื่อกี้เริ่มเครียด เพราะดันไปเจอ ตารางที่มีความใกล้ชิด สนิทสนมกันพอสมควร ไปมาหาสู่กันได้  เลยหนีมาอันนี้ดีกว่า สลับกันและกัน  อันนี้โดดเดี่ยวไม่ยุ่งกับใคร ฉันทำงานเสร็จสรรพ์ภายในตัว ไม่ขอพึ่งใคร อ้าว ยาววววว   wp_links  คือ ตารางที่ว่าด้วยการสร้างลิงค์ต่าง ๆ ในเว็บครับ

  • link_id  แม่มัน ไม่เคยซ้ำใครหรอก ขึ้นเอ๊า ขึ้นเอา ไม่รู้จะรีบไม่ไหน ไม่ยอมให้ reused ด้วย (เริ่มเคือง)
  • จะลิงค์ไปไหนล่ะ  konkeanweb.com ไหมล่ะ จัดไป   ใส่ http://www  ให้ด้วยก็ดี  link_url
  • จะไปไหนยาวไปก็เกิ๊นพอดี  เอาสั้นๆ ให้คนเห็นแค่นี้พอ เข้าใจง่าย   ใส่ไป(ไม่ใส่ไข่นะตัว)   link_name
  • บางทีข้อความก้ไม่เคยพอ ก็ต้องมีภาพให้เห็นถึงจะเทห์ และมีสีสรร (เขาว่างั้น )  ก็ใส่ให้เขาหน่อย  link_image
  • จะให้ขึ้นมาแบบหน้าต่าง หรือย้ายหน้าจอไปเลย  อย่าลืม   link_target
  • ข้อความ+ภาพ  ยังมืน อยากให้กระจ่างอีกหน่อย อธิบายเป็นข้อความเลย  link_description
  • จะให้คนอื่นเห็นไหมมมม  link_visible   YES/NO   (ปกติทำเองใช้แต่ status )
  • เจ้าของคือใคร link_owner
  • ให้คะแนนบ้างก็ได้  link_rating
  • มีวันที่อัพเดตด้วย 0.0   link_updated
  • link_rel เอาสิ อยากยืมก็ทำได้
  • ขี้หลงขี้ลืม ก็ใส่ไว้ก็ดีเหมือนกัน   link_notes
  • แจกชาวบ้าน อ่านกันฟรี ๆ อ่านรูปแบบอื่น ก็ทำได้  (ไฮโซ)  link_rss

wp-database

อันนี้พระเอกของงานเลยครับพี่น้อง wp_options เพราะรวมสรรพสิ่ง ทุกสิ่งอย่าง บทความการใช้งานจะได้เห็นว่า ตารางนี้มีบทบาทเยอะแค่ไหน ทำอะไรได้บ้าง มากกว่าที่เห็น ๆ กันอยู่ แต่ตอนนี้เอาตัวพระเอกไปเก็บไว้ก่อน  ใบ้ให้ว่าข้อมูลหลัก ๆ มันอยู่ในนี้แหละ

wp-database

อันนี้เป็นคู่หู เสริมความสามารถให้กับ บทความ หรือเรื่องที่เรา ๆ จะบ่นกันในบล๊อคแหละ wp_postmeta  เหมือนกับ wp_commentmeta เพราะงั้นไม่ฉายซ้ำ เค๊  >,<

อ่ะ อันนี้พระเอกยิ่งกว่าพระเอกอีก เพราะมันคือสิ่งที่เราจะได้เห็น ๆ กัน  wp_post  ที่เราได้อ่านกันนี่ ก็ต้องยกความดีให้ตารางนี้เลยนะ (ไม่น่าทำละเอียดเลย เริ่มเหนื่อย แฮ๊ก ๆ แก่แล้วเหนื่อยง่ายจัง T__T )

  • จะว่าไปทุก ๆ ตารางมีแม่หมดเลยนะ  ID
  • ใครเขียน post_author
  • วันที่เขียน post_date
  • อยากได้มากก็ใส่ให้อีก วันเขียนเนี่ยย  post_date_gmt  (ไว้หาประโยชน์ัมันชัด ๆ จะมาบอก ตอนนี้เข้าใจว่า เกี่ยวกับโซน)
  • เนื้อหา post_content  (แรก ๆ ไฟแรงครับ ตอนนี้ดึก เริ่มง่วง บ่นไม่ไหววว 555 )
  • เออ มีหัวข้อด้วย  post_title
  • ที่เห็นใน คนเขียนเว็บอ่ะ หน้าแรก แบบย่ออ่ะ อันนี้แหละ  post_excerpt
  • มาแหละคุ้น ๆ หน่อย  จะแช่แข็ง หรือให้แสดงก็อันนี้แหละ  post_status
  • จะให้ชาวบ้านเขาส่งเสียงแซวเล่น หรือให้กำลังใจเปล่าาา   (ให้คอมเม็นต์แหละ) comment_status
  • ping_status (แฮะ ๆ )
  • บางทีมันก็ต้องสงวนไว้ให้เฉพาะกลุ่มบ้าง อ่ะไรบ้าง  post_password
  • มันก็คือ ๆ post_title แหละ เจ้าตัว post_name เนี่ยยย แต่หลัก ๆ ใช้กับการทำ page มากกว่าอ่ะนะ
  • to_ping (แฮ่ะ ๆ  ไม่บอก)
  • pinged ( >,< )  ปล่อยให้พวกจอดำเล่นกัน
  • post_modified แก้ไขวันไหน
  • post_modified_gmt คือกันกับอันบน
  • post_cotent_filltered อยากจะกรองไ้อ้คำไม่พึงประสงค์ก็จัดการได้
  • post_parent  (ติดไว้ก่อน ไม่แน่ใจ ยังไม่เคยเล่น)
  • guid  กูเกิลชอบมาก เขียนได้ดี กูเกิลมีรางวัล (ปล. ปรับแต่งกันให้ดี)
  • menu_order เีรียงลำดับเมนู ใช้ในกรณีที่สร้างเป็นเมนู
  • อันนี้บ่งบอกว่า เป็น บทความ หรือ page กันแน่  post_type
  • อันนี้กรณีพวกไฟล์ อัพโหลดเสร็จ จะมีข้อมูลพวกนี้เป็นตัวบ่งชี้ post_mime_type (ไว้เล่น ๆ ไป จะเข้าใจ จะแทรกให้)
  • จะไปนับจำนวนคนออกความเห็น จากตารางโน้น(wp_comment) ก็กะไรอยู่ คงจะอืดเป็นบ้าเลย  ก็เลยจัดการด้วยการเม็นต์ที บวกค่านี้ที จะได้เอาไปใช้ได้เลย หุหุ ฉลาดดด   comment_count

wp-database

มาถึงส่วนที่ถือว่าเป็นทางลัดกันหน่อย พวก keyword tag ต่าง ๆ ที่เรามักจะเห็นกันบ่อย ๆ ส่วนนี้แหละ มีอยู่ด้วยกัน 3 ตาราง ที่สร้าง category สร้าง keyword ให้ เริ่มจาก  wp_terms คือชื่อที่เราจะตั้งขึ้นมา

  • ชื่อที่เห็น ๆ กัน name
  • อันนี้ใช้ในการทำลิงค์ slug
  • จัดเป็นกลุ่ม  term_group

wp-database

wp_term_taxonomy  ตารางนี้ก็เอา wp_terms มาจัดการต่อด้วยการ

  • taxonomy แยกหรือจัดประเภทด้วยชื่อให้ เช่น เป็นลิงค์หรือประเภท
  • สร้างคำอธิบายของของกลุ่มเหล่านั้น ๆ เพื่อจะได้ทำความเข้าใจภายหลัง description
  • เป็นสมุนของใครหรือเปล่า  parent
  • นับจำนวนการคลิกดูหน่อย  count

wp-database

หลังจากสร้างคำ พร้อมจัดกลุ่มเรียบร้อย ที่นี้ก็จูนกันหน่อยว่า ใครจะใช้บ้าง

  • object_id คือไอดีที่จะมาใช้งานคำแต่ละคำ ที่สร้าง ตัวเลขส่วนนี้อาจจะมีหลายตัว เช่น 1 อาจจะมีหลายครั้ง แต่จะแยกกันด้วย ตัวถัดไป
  • term_taxonomy_id อันนี้แหละจะเป็นตัวแยก เช่น  object_id  สมมุติมี 1 อยู่สองแถว(ตัวเลขซ้ำได้) ก็ต้องมานั่งเช็คอันนี้ว่า obejct_id=1 ตัวแรก เป็นลิงค์ หรือ category ของบทความ หรืออาจจะกลุ่มอื่น ๆ  และ object_id=1 ตัวที่สองเป็นแบบไหน (แต่ไม่ซ้ำกันกับอันแรกแน่) อันนี้ขึ้นอยู่กับว่า wp_terms ได้สร้างไว้จำนวนเท่าใด (ถ้าเริ่มงง จะไม่แปลก 555 )
  • term_order ไ้ว้จัดการเรียงลำดับความสำัคัญ

wp-database

ที่นี้ก็หนีมาส่วนของผู้ใช้งานบ้าง  ก็มีอยู่สองตาราง เหมือน  ๆกับ  post และ comment เลย คือจะมีพวก option meta เสริมมา

เริ่มจาก wp_users กันเลย

  • ID อันนี้พบเจอได้ทั่ว ๆ ไป
  • ชื่อในการใช้ login เข้าสู่ระบบ  user_login
  • รหัสผ่าน ที่พอจะปลอดภัยได้  user_pass
  • ชื่อเล่นนิด ๆ  user_nicename
  • เผื่อคุยหรือส่งข้อมูลถึงกัน ไม่ว่าจะเป็นการยืนยันตัวตน หรือในกรณีอื่น ๆ (ไม่ใช่พวก spam หรอกน๊า)  user_email
  • มีเว็บไซต์หรือบล๊อคของตัวเองหรือไ่ม่ user_url
  • ลงทะเบียนหรือสมัครไว้วันไหน  user_registered
  • สร้างตัวอักษรพิเศษ ๆ หน้าตาแปลก ๆ ยาว ๆ เพื่อยืนยันผ่านเมล์ ว่าถูกต้องหรือไม่  user_activation_key
  • ตอนนี้ประทับตราว่าอนุญาตวิ่งเข้าออกในเว็บนี้ได้หรือไม่ได้  user_status
  • ใส่ชื่อเทห์ ๆ ได้กรณีที่ใส่ชื่อ login แบบทางการแล้ว ฮา คนอื่นจะเห็นชื่อนี้แหละ

wp-database

wp_usermeta อันนี้ก็จะเพิ่ม field เสริมให้กับข้อมูลผู้ใช้ที่เราอยากจะเสริมไป เช่น อยากจะได้ เบอร์โทรเพิ่มหน่อย แต่ตารางอันบนมันไม่มีครับ เลยต้องเสริมเอา ก็คือมาเพิ่มในนี้แหละ เคป่ะ เพราะงั้น พวก meta ทั้งหลายแหล่ ก็จะีมีลักษณะการใช้งาน เช่นนี้แหละ อยากได้อะไรที่มากกว่าที่เห็นก็มาใส่เอา

wp-database

ทั้งหมดทั้งมวลนี้ เมื่อแปลงให้เห็นเป็นภาพฉบับ powerdesigner แ้ล้วก็จะได้แบบนี้

wp-database

บางทีอาจจะงง ว่า ไม่เห็นมันเกี่ยวกับตรงไหนเลย ไอ้ที่โม้ ๆ มาอ่ะ ลองดูภาพนี้ครับ (คลิกที่ภาพเพื่อดูแบบเต็ม ๆ ใหญ่ ๆ ได้นะครับ)

wp-database

ก็จะเห็นภาพชัดชึ้น ข้อมูลเชื่อมโยงกันมากขึ้น เพียงแต่เขาไมไ่ด้ตั้งชื่อตัวแปรให้มันตรงกันแค่นั้นเอง จริง ๆ แล้ว ก็คือตัวเดียวกัน มันเชื่อมกันแบบนี้แล ก็หวังว่า จะพอมองภาพออกแบบคร่าว ๆ ได้ว่า มันมีโครงสร้างยังไง อาจจะจำไม่ได้แม่น เหมือนจับวางก็ไม่เป็นไร  กลับมาอ่านดูอีกรอบก็ได้ ถ้าจำไม่ได้

ตอนนี้ก็ดึกมากแล้ว เริ่มมืน ๆ ง่วงนอนครับ เลยไม่ฮาเลย หลัง ๆ นี่ ฮา (สักหน่อย )  ก็ขอให้โชคดี ไว้เจอกันคราวหน้า หลังเข้าพรรษาเสร็จ ก็ขอให้โชคดีกันถ้วนหน้า ทำบุญทำทานกันเยอะ ๆ ครับ ไม่ได้ดีกับใครหรอก จะดีสำหรับตัวท่านเอง  เฉกเช่นการกินข้าวครับ ไ่ม่มีใครกินแทนใครได้ ใครกินใครก็อิ่ม  อันนี้คงเข้าใจหลักการทำบุญนะครับ เพราะฉะนั้น อย่ามัวชักช้า หรือรอให้ใครทำให้  จงเริ่มตักตวงให้กับตัวเองให้เร็วที่สุด  ขอบคุณครับที่ติดตามกัน

ปล.โทษทีพึ่งมาบอก (ไม่งั้นก็ไม่อ่านกันหร๊อกกก)  บทความนี้เน้นเล่าเรื่องสำหรับคนที่พอจะเรียนรู้เรื่องดาต้าเบสมาบ้างพอสมควร เพราะงั้นคนทีไม่เคยเีรียนมา อ่านแล้วงง ก็ต้องขออภัยที่พึ่งจะมาบอก (555555555555 โทษทีที่ตั้งใจ) ตีสองแล้ววว โห มาวัดทีไร เงียบสงัด ชวนให้คิดไรไปเรื่อยเสมอ เพลิน นอนดีกว่า พรุ่งนี้ตื่นเช้า งานเข้า ๆ