PHP ระบบบริหารจัดการ พล็อตนิยาย - ตอนที่ 1

โดย CyberMAN

PHP Fiction Management System 

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

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

ตัวอย่างระบบจัดการพล็อตเรื่อง เพื่อช่วยงานเขียนนิยาย


หลังจากที่ได้นั่งคิดนอนคิด และหลับไปฝันไป

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


 


ตารางที่จะต้องสร้าง มีทั้งหมด ดังนี้

1. รายชื่อนิยายทั้งหมด
2. แนวนิยายที่เขียน
3. พล็อตของแต่ละเรื่อง
4. ฉากเหตุการณ์ในแต่ละพล็อต
5. เนื้อเรื่องในแต่ละฉาก
6. รายชื่อตัวละครในนิยายแต่ละเรื่อง
7. ข้อมูลอ้างอิง (บางฉากอาจจะต้องการเก็บข้อมูล อ้างอิงที่พิสูจน์ได้ เช่นแนววิทยาศาสตร์)



เมื่อลองกำหนดรายชื่อตารางที่ใช้เก็บข้อมูลเบื้องต้น ก็จะได้ในเบื้องต้น 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 แนวนิยายที่เขียน



สำหรับโครงสร้าง Data Dictionary ก็มีดังนี้

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


 สำหรับท่านใดที่ต้องการ SQL สำหรับสร้างตารางอัตโนมัติเลยนั่น ต้องบอกเลยว่าตัวกระผมเองก็ได้ทำหายไปแล้ว T___T นี่ก็คงต้องเสียเวลามานั่งสร้างทีละตารางจนกว่าจะครบ


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