ข้ามไปที่เนื้อหาหลัก

ระบบบริหารจัดการ พล็อตนิยาย : โครงสร้างฐานข้อมูลเต็ม

ตารางที่ใช้เก็บข้อมูลทั้งหมดของโปรแกรมช่วยเขียนนิยาย ที่ออกแบบไว้


ตารางที่ใช้เก็บข้อมูลเบื้องต้น ประกอบด้วย 8 ตาราง

  1. tb_member ระบบสมาชิก
  2. tb_story_charactor รายชื่อตัวละครในนิยายแต่ละเรื่อง
  3. tb_story_detail เนื้อเรื่องในแต่ละฉาก
  4. tb_story_info_reference ข้อมูลอ้างอิง
  5. tb_story_list รายชื่อนิยายทั้งหมด
  6. tb_story_plot พล็อตของแต่ละเรื่อง
  7. tb_story_scene ฉากเหตุการณ์ในแต่ละพล็อต
  8. tb_story_type แนวนิยายที่เขียน






1. tb_member

Column Type Null Default Comments
row_id int(11) No
member_id varchar(50) No
regis_date datetime No
photo varchar(50) No
name varchar(30) No
surname varchar(30) No
nickname varchar(20) No
username varchar(20) No
password varchar(130) No
birthday date No
gender varchar(20) No
email varchar(40) No
homepage varchar(200) No
district varchar(30) No
province varchar(30) No
geo varchar(20) No
job varchar(50) No
remark text No
update_by varchar(30) No
update_time datetime No
unlock_date date No วันที่เริ่มให้ใช้งานอีกครั้ง
status int(1) No 0=temp,1=active,8=Lock, 9=Delete

2. tb_story_charactor

Table comments: รายชื่อตัวละคร

Column Type Null Default Comments
ch_id int(11) No auto
ch_person_name varchar(40) No ชื่อตัวละคร
ch_role varchar(30) No บทบาทในเรื่อง
ch_physical varchar(250) No ลักษณะทางกายภาพ
ch_characteristic varchar(250) No ลักษณะทางจิต
ch_profile varchar(250) No ภูมิหลัง
ch_way_of_life varchar(250) No ลักษณะการดำเนินชีวิต
ch_self_present varchar(250) No การแสดงออกที่สะท้อนให้เห็นตัวตนของเขา
ch_skill varchar(250) No ความสามารถ หรือทักษะพิเศษ
ch_short_scene varchar(250) No เรื่องย่อ ๆ ของเขาในเรื่อง
ch_other_detail text No ข้อสังเกตอื่น ๆ
ch_status int(1) No
ch_create_by varchar(30) No
ch_create_date datetime No

3. tb_story_detail

Table comments: เนื้อเรื่องในแต่ละฉาก

Column Type Null Default Comments
sd_id int(11) No auto
sd_story_id int(11) No อ้างอิงนิยาย
sd_plot_id int(11) No อ้างอิงพล็อต
sd_scene_id int(11) No อ้างอิงฉาก
sd_content text No เนื้อหา
sd_status int(1) No
sd_create_by varchar(50) No
sd_create_date datetime No

4. tb_story_info_reference

Table comments: อ้างอิงบทความวิชาการ

Column Type Null Default Comments
rf_id int(11) No auto
rf_scene_id int(11) No อ้างอิงฉากเหตุการณ์
rf_title varchar(250) No อ้างอิงหนังสือ หน้าบทความ หรือลิงค์หน้าเว็บ
rf_create_by varchar(30) No
rf_create_date datetime No

5. tb_story_list

Table comments: ตารางเก็บข้อมูลรายชื่อนิยาย

Column Type Null Default Comments
sl_id int(11) No auto
sl_title varchar(100) No ชื่อนิยาย
sl_author varchar(50) No ชื่อผู้แต่ง
sl_abstract varchar(220) No เรื่องย่อ
sl_theme varchar(50) No ธีมของเรื่อง
sl_type varchar(50) No แนวนิยาย
sl_status int(1) No 1=active,9=trash
sl_create_by varchar(50) No username
sl_create_date datetime No

6. tb_story_plot

Table comments: พล็อตของแต่ละเรื่อง

Column Type Null Default Comments
sp_id int(11) No auto
sp_story_id int(11) No อ้างอิงนิยาย
sp_title varchar(100) No ชื่อพล็อต/ชื่อแต่ละบท
sp_status int(1) No 1=active,9=trash
sp_create_by varchar(50) No username
sp_create_date datetime No

7. tb_story_scene

Table comments: ฉากเหตุการณ์ในแต่ละพล็อต

Column Type Null Default Comments
sc_id int(11) No auto
sc_story_id int(11) No อ้างอิงนิยาย
sc_plot_id int(11) No อ้างอิงพล็อต
sc_title varchar(500) No ชื่อแต่ละฉาก
sc_status int(1) No
sc_create_by varchar(50) No
sc_create_date datetime No

8. tb_story_type

Table comments: แนวนิยายที่เขียน

Column Type Null Default Comments
st_id int(11) No auto
st_story_id int(11) No อ้างอิงนิยาย
st_title varchar(30) No ชื่อแนวที่เขียน
st_create_by datetime No
st_create_date datetime No

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ร้อยละ ทศนิยม 2 ตำแหน่งบวกคืน ไม่เท่ากับ 100 และ ปัญหาการคำนวณเลขทศนิยม เมื่อปัดเศษแล้วค่าที่บวกคืนไม่เท่าเดิม

กรณีนี้เป็นการทดสอบคำนวณเลขที่ต้องหารครึ่ง ตัวอย่างเช่น 2.33 / 2 = 1.165 กรณีนี้ถ้าเก็บค่านี้ในฐานข้อมูลที่กำหนดให้มีทศนิยมเพียง 2 หลัก ในฟิลด์ 2 ฟิลด์ซึ่งแต่ละฟิลด์จะถูกปัดขึ้นเป็น 1.7 เมื่อนำมาบวกกลับ 1.17 + 1.17 = 2.34 ถ้าอย่างนั้นเราก็ต้องกำหนดให้ฟิลด์ที่ใช้เก็บข้อมูลสามารถเก็บเลขทศนิยมได้หลายๆตัว ก็จะเก็บเลขทั้งสามหลักไว้ในฐานข้อมูลเลย 1.165 + 1.165 จะได้ 2.33 พอดี แต่ตอนเราแสดงรายงาน ก็จำเป็นจะต้องแสดงเลขทศนิยมเพียงแค่ 2 หลักอยู่ดี แล้วเราจะทำอย่างไรล่ะทีนี้ ก็เก็บมันเป็นเลขทศนิยมเต็มจำนวนซะแล้วตอนแสดงก็ต้องปัดเศษอยู่ดี เพราะค่า 1.165 ถ้าใช้ฟังก์ชั่นปัดเศษลง ก็จะเหลือ 1.16 แต่ถ้าปัดขึ้นก็จะเป็น 1.17 ซึ่งตัวเลขทั้งสองตัว เมื่อนำมารวมกัน ยังไงๆ ก็ไม่เท่ากับ 2.33 อยู่ดี (1.16+1.16 = 2.32,    1.17+1.17 = 2.34 ) อีกตัวอย่างนึงครับเป็นการถอด VAT ราคาสินค้า การคิดค่าทศนิยม แล้วผลรวมเพี้ยน เนื่องจากการปัดเศษ แล้วยอดเกินบ้าง ขาดบ้าง ตัวอย่างการถอด VAT ซื้อของมา 573.50 บาท ถอด VAT ออกมาได้ (573.50*7) / 100 = 40.145 ราคาสินค้า จะได้เป็น 573.50 - 40.145 = 533.3

FPDF ภาษาไทย กับ วรรณยุกต์ลอย

สำหรับงานเขียนโปรแกรมเว็บแอพฯ ด้วย PHP ที่ต้องทำการส่งออกข้อมูลเป็นไฟล์เอกสาร PDF นั้น เมื่อลองค้นดูแล้วก็เจอกับ FPDF เป็นคลาสที่เขียนขึ้นมาสำหรับงานนี้โดยเฉพาะ แต่กับภาษาไทยแล้วก็ต้องเจอกับปัญหาสุดคลาสสิคคือ รองรับภาษาไทยไม่ร้อยเปอร์เซ็นต์ ^^" บทความที่สอนการใช้งานเบื้องต้นที่ครอบคลุมการทำงานของ FPDF http://www.select2web.com/category/fpdf จะมีบทความแนะนำการใช้ฟอนต์ภาษไทยอยู่ที่ลิงค์นี้ http://www.select2web.com/fpdf/fpdf-lesson-10.html ดาวน์โหลดและสร้างฟอนต์มาใช้เอง http://witkub.blogspot.com/2011/11/fpdf.html สำหรับวิธีแก้ไขปัญหาวรรณยุกต์ลอย ลองดูวิธีจากที่นี่ http://punnawatt.blogspot.com/2009/07/pdf.html สุดท้ายแล้วลองทดลองมาหมด ก็ยังไม่ได้คำตอบที่ตรงใจครับ เพราะไม่สามารถแก้สระลอยได้อย่างแท้จริง เพราะเงื่อนไขข้อมูลจริงไม่อาจจะทำให้เหมือนในตัวอย่างได้ ก็เลยถอดใจเรื่องวรรณยุกต์ลอย นอกจากปัญหาเรื่องวรรณยุกต์ลอย แล้วฟอนต์บางตัวก็เกิดปัญหาวรรณยุกต์ซ้อนทับกันด้วย เช่นคำว่า "นี้" เมื่อผลลัพธ์ออกมา สระอี และวรรณยุกต์โท จะทับกัน สรุป 1. ดาวน์โหล

FPDI มาทำให้การสร้างเอกสาร PDF ด้วย PHP ง่ายขึ้นกันเถอะ

เคยใช้กันรึยังครับ เหมาะสำหรับงานสร้างแบบฟอร์ม PDF แล้วกรอกข้อมูลตามแบบฟอร์มทีหลัง หลักการคือโหลด PDF เข้ามา แล้วก็เขียนไฟล์ใหม่ขึ้นมา ส่วนที่มันไดนามิกมากๆ คงไม่เหมาะเท่าไหร่ ถ้าให้มองการทำงานของไลบรารี่ตัวนี้ ก็เหมือนกับที่เราสั่งทำใบเสร็จรับเงิน แล้วกรอกข้อมูลทีหลังนั่นเอง 1. สร้าง PDF เปล่าๆ ที่มีแค่ส่วนหัว และส่วนท้าย 2. เติมข้อมูลรายการลงในส่วนกลาง ถ้าเกินจำนวนแถวที่กำหนดให้ขึ้นหน้าใหม่ http://www.setasign.com/products/fpdi/about/ ตัวอย่างในลิงค์ต่อไปนี้ จะเป็นการนำข้อความในไฟล utf8test.txt ไปแทรกในไฟล์ logo.pdf http://www.setasign.com/products/fpdi/demos/tcpdf-demo/ PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด  "ลดเวลาการเขียนโปรแกรม" ราคาสุดคุ้ม    http://fastcoding.phpcodemania.com

PHP CI MANIA