วันอังคารที่ 30 เมษายน พ.ศ. 2562

Commit: Fix typo, edit views and deploying


Commit: Fix typo, edit views and deploying


สิ่งที่ทำ

แก้ไขส่วนที่พิมพ์ผิดในโคด


เข้าไปสร้าง app บน heroku
โดยสร้างบนเว็บ heroku หรือใช้คำสั่ง heroku create ใน console command เมื่ออยู่ในโฟลเดอร์โปรเจค



สร้าง Procfile ไว้สำหรับให้ heroku ใช้คำสั่งใช้งานเริ่มเว็บ


ทำการต่อไฟล์เข้ากลับ cleardb add-on ที่สร้างขึ้นใน heroku


ทำการตกแต่งหน้าเว็บแล้ว deploy โดย push โคดขึ้น heroku ด้วยคำสั่ง git push heroku HEAD:master

ประโยชน์

ทำให้สามารถเข้าใช้เว็บผ่านทาง internet ได้โดยไม่จำเป็นต้องเปิดผ่านไฟล์โปรเจค

Commit: Create function in index.js in station.ejs

Commit: Create function in index.js in station.ejs


สิ่งที่ทำ

ทำการสร้าง function ใน index.js เพื่อทำการแสดงหน้า station
sql_station คือ ชื่อสถานีที่มี id_station ตามที่กดเข้าไป
sql_sur คือ สถานที่รอบๆสถานีที่มี id_station ตามที่กดเข้าไป
sql_ser คือ บริการรอบๆสถานีที่มี id_station ตามที่กดเข้าไป
sql_time คือ สายรถไฟและเวลาเข้า - ออกของสายนั้นๆในสถานีที่มี id_station ตามที่กดเข้าไป



โดยจะแสดงผลจากหน้า station.ejs


ประโยชน์

ทำการแสดงข้อมูลต่างๆของสถานีที่เลือกนั้นว่ามีสถานที่โดยรอบอะไรบ้าง, เวลารถเข้าออก และบริการที่มี

Commit: Create function in index.js in index.ejs

Commit: Create function in index.js in index.ejs


สิ่งที่ทำ

ทำการสร้าง function ใน index.js เพื่อทำการแสดงหน้า index
โดยทำการ query ข้อมูล id_station และ name_station มาจาก station

โดยจะแสดงผลจากหน้า index.ejs


ประโยชน์

ได้หน้าที่เก็บลิ้งที่ใช้เข้าไปหาข้อมูลของสถานีนั้นๆในหน้า station

วันจันทร์ที่ 29 เมษายน พ.ศ. 2562

Commit: Create function in index.js for home.ejs

Commit: Create function in index.js for home.ejs


สิ่งที่ทำ

ทำการสร้าง function ใน index.js เพื่อทำการแสดงหน้า homepage


โดยจะแสดงผลจากหน้า home.ejs 


ประโยชน์

เป็นการแสดงหน้าแรกที่เริ่มเปิดขึ้นสามารถเข้าลิ้งค์ไปใช้งานอย่างอื่นได้แก่หน้า index และ price

Commit: Add rabbit card cost tp ticket.csv

Commit: Add rabbit card cost tp ticket.csv

สิ่งที่ทำ

เพิ่มราคาค่าโดยสารสำหรับผู้โดยสารที่มีบัตร rabbit

ประโยชน์

เพื่อนำมาใส่ลง database โดยใช้ insert_database.js

Commit: Add station_service.csv

Commit: Add station_service.csv


สิ่งที่ทำ

ทำการสร้างตาราง csv ที่เก็บข้อมูลบริการในแต่ละสถานีไว้

ประโยชน์

เพื่อนำมาใส่ลง database โดยใช้ insert_database.js

Commit: Add ticke.csv

Commit: Add ticke.csv


สิ่งที่ทำ

ทำการสร้างตาราง csv ที่เก็บข้อมูลค่าโดยสารไว้

ประโยชน์

เพื่อนำมาใส่ลง database โดยใช้ insert_database.js


วันอังคารที่ 23 เมษายน พ.ศ. 2562

Project Proposal

BTS Helper


จุดมุ่งหมาย

- เพิ่อให้ทราบถึงสถานที่รอบๆสถานีรถไฟฟ้านั้นๆ
- ช่วยคำนวณเวลาการเดินทาง
- บอกเวลาที่รถเริ่มออกและเวลาที่หยุดออก
- บอกราคาที่ใช้ในการเดินทาง

ประโยชน์

- นำไปใช้ในการวางแผนการเดินทางของผู้ใช้ได้
- ให้ผู้ใช้ทราบถึงสถานที่รอบๆสถานีที่ต้องการได้

ER-Diagram


Relational Scheme

โปรแกรมที่ใช้งาน

- MySQL
- NodeJS

วันเสาร์ที่ 2 มีนาคม พ.ศ. 2562

Normalization

Normalization



Normalization เป็นขั้นตอนจัดการกับ redundancy ที่มีอยู้ให้หมดไป โดยทำการเปลี่ยนให้เป็น normal form 3 แบบ
  - 1NF จะทำการเก็บค่าเพียงแค่ค่าเดียวต่อหนึ่งช่องในตารางนั้นเท่านั้น โดยจะทำการสร้างตารางใหม่หากเจอว่ามีหลายตัวในช่องเดียวกัน
  - 2NF ต้องอยู่ในรูปแบบ 1NF ทั้งหมดก่อน แล้วทำให้เป็นรูปแแบบ fully dependent กับ PK ทั้งหมด หากมีบางอันที่ไม่ fully dependent กับ PK ให้ทำการแยกออกจากกันแล้วทำการสร้างตารางใหม่
  - 3NF ต้องอยู่ในรูปแบบ 2NF ทั้งหมดก่อน แล้วหาว่่ามีการเกิด transitive relationship ขึ้นไหม หากมีให้ทำการแยกออกจากกันแล้วทำการสร้างตารางใหม่

1NF


- มีการเก็บค่าซ้ำที่เกี่ยวกับ course ทั้งหมดเพราะนักเรียนหนึ่งคนจะลงได้หลาย course
- ทำการนำตัวที่ซ้ำออกแล้วทำการแยก
- กำหนดตัว PK ที่จะนำมาใส่ในตารางที่สร้างใหม่


2NF


- ดูว่าตารางไหนไม่เป็น Fully dependent กับ PK
- หากเจอให้เขียนแยกกันออกมา
- กำหนดตัว PK ที่จะนำมาใส่ในตารางที่สร้างใหม่


3NF


- ดูว่าตารางไหนมี transitive relation
- หากพบให้ทำการแยกออกจากกัน


Reference

วันอังคารที่ 19 กุมภาพันธ์ พ.ศ. 2562

Update Anomalies

Update Anomalies

Update Anomaly เกิดขึ้นได้ 3 แบบ
- Insertion เกิดขึ้นเมื่อมีการเพิ่มข้อมูลที่เป็น inconsistant
- Deletion เกิดขึ้นเมื่อมีการลบข้อมูลแล้วทำให้ส่วนหนึ่งของข้อมูลหายไป
- Modification เกิดขึ้นเมื่อมีการเปลี่ยนข้อมูลทำให้เกิด inconsistant ขึ้น

Example


Deletion Anomaly

หากทำการลบ A-101 ใน table accountNo ไปแล้วนั้น Downtown จะหายไปจาก table branch เกิด Update Anomalies แบบ Deletion

Reference


Functional Dependencies

Functional Dependencies




Functional Dependencies เกิดจากความสัมพันธ์แบบ X --> Y โดยตัว X คือตัว deterent และ Y เป็นตัว dependent หมายความว่าในทุกๆตัว X จะสามารถใช้ค่า X ในการกำหนดค่า Y ได้

Primary Key

- ProjectNo
- EmpNo

Partial Dependencies

- ProjectNo --> ProjName
- EmpNo --> EmpName, DeptNo, DeptName
- {ProjNo, EmpNo} --> HrsWork

Transitive Dependencies

- DeptNo --> DeptName

Reference

วันเสาร์ที่ 16 กุมภาพันธ์ พ.ศ. 2562

SQLite

SQLite




ดูคำสั่งได้ที่: http://www.sqlitetutorial.net/

Start

- Install sqlite โดยเปิด terminal ใน ubuntu แล้วใช้คำสั่ง: sudo apt-get install sqlite3
- เริ่มใช้ sqlite โดยคำสั่ง: sqlite3
- สร้าง database โดยใช้คำสั่ง: .open ตามด้วยชื่อไฟล์

Create Table


- Author
  - ID  Integer (primary key)
  - Name Text
  - Phone_number Text
  - Location Text
- Book
  - B_ID Text (primary key)
  - B_Name Text
  - Price Integer
  - P_ID  Integer (foreign key)
  - P_Date Text
- Publisher
  - ID Integer (primary key)
  - Name Text
  - Phone_number Text
  - Location Text
- Write
  - A_id (foreign key)
  - B_isbn (foreign key)

Insert value into database

- Author: Name, Phone_number, Location
  - Values: Thomas Harris, 75884849, USA
- Book: B_ID, B_Name, Price, P_ID,P_Date
  - Values: 0001, Hannibal, 150, 1, 08-6-1999
- Publisher: Name, Phone_number, Location
  - Values: Delacorte Press, 888596657, USA
- Write: A_id, B_isbn
  - Values: 1, 1

Check Value in table


Use Select


- เมื่อต้องการดู Author ให้ใช้คำสั่ง SELECT * FROM Author
- เมื่อต้องการดู Book ให้ใช้คำสั่ง SELECT * FROM Book
- เมื่อต้องการดู Publisher ให้ใช้คำสั่ง SELECT * FROM Publisher
- เมื่อต้องการดู Write ให้ใช้คำสั่ง SELECT * FROM Write
Or Use DB Browser for Sqlite: https://sqlitebrowser.org/



- คลิกขวาบน Table ที่ต้องการดู
- เลือก Browse Table

Add 10 or more books

ทำการเพิ่มข้อมูลหนังสือเข้าไปยังแต่ละ Table ที่สร้างไว้ตามที่ทำใน Insert values into database แล้วทำการ SELECT * FROM เพื่อดูผลได้ดังนี้

Author
SELECT * FROM Author;
1|Thomas Harris|07-5884-849|USA
2|J.R.R. Tolkien|08-8559-888|UK
3|Antoine de Saint-Exupery|03-3225-444|French
4|J.K. Rowling|09-8579-977|UK

Book
Select * From Book;
1|Hannibal|150|1|8 June 1999
2|The Lord of the Rings|120|2|29 June 1954
3|Le Petit Prince|100|3|April 1943
4|Harry Potter and the Philosopher's Stone|199|4|26 June 1997
5|The Hobbit|120|2|21 September 1937
6|Harry Potter and the Chamber of Secrets|199|4|2 July 1998
7|Harry Potter and the Prisoner of Azkaban|199|4|8 July 1999
8|Harry Potter and the Goblet of Fire|199|4|8 July 2000
9|Harry Potter and the Order of Phoenix|199|4|21 June 2003
10|Harry Potter and the Half-Blood Prince|199|4|16 July 2015

Publisher
SELECT * FROM Publisher;
1|Delacorte Press|08-8859-6657|USA
2|Goerge Allen & Unwin|(61 2) 8425 0100|Australia
3|Reynold & Hitchcock|08-555-7788|USA

4|Bloomsbury|05-566-664|Canada

Write
SELECT * FROM Write;
1|1
2|2
3|3
4|4
2|5
4|6
4|7
4|8
4|9
4|10


เว็บที่ค้นหาข้อมูลหนังสือ: https://en.wikipedia.org/wiki/Hannibal_(Harris_novel)
                                        : https://en.wikipedia.org/wiki/List_of_best-selling_books