Group Blog
 
All Blogs
 
Java Programming Bookstore Appication (Series 1): Data Model for the Bookstore Application

Java Programming Bookstore Appication (Series 1): Data Model for the Bookstore Application

ตอนนี้จะเป็นบทความที่พูดถึงเรื่องข้อมูลของระบบการจัดการหนังสือ (Bookstore Application) ซึ่งระบบนี้จะประกอบไปด้วย 3 ตาราง
  • CATEGORY - ตารางสำหรับเก็บประเภทของหนังสือ; เช่น Java, Scala
  • BOOK - ตารางสำหรับเก็บรายละเอียดหนังสือ เช่น ชื่อเรื่อง
  • AUTHOR - ตารางสำหรับเก็บรายละเอียดผู้เขียน
จากรูปที่ 1 ประเภทหนังสือ (CATEGORY) แต่ละประเภทนั้นสามารถจัดหนังสือเข้าประเภทได้มากกว่า 1 เล่ม หรือไม่มีหนังสือใดๆจัดเข้าประเภทนั้นๆเลยก็ได้ เช่น หนังสือประเภท Java อาจจะมีอยู่สามเล่ม หรือไม่มีเลยก็ได้ อาจกล่าวได้อีกอย่างว่า ระหว่าง ประเภทหนังสือ (CATEGORY) และ หนังสือ (BOOK) นั้นมีความสัมพันธ์กันแบบ one-to-many เช่นเดียวกับความสัมพันธ์ระหว่าง หนังสือ (BOOK) กับผู้เขียน (AUTHOR) ซึ่งตามรูปที่ 1 เราจะเรียกว่า ER Diagram (The entity-relationship diagram)


รูปที่ 1


ซึ่งในบทความนี้จะใช้ฐานข้อมูลแบบ DBMS (Data Base Management System) นั่นคือ MySQL เป็นตัวอย่างเนื่องจากฟรี และเป็นที่แพร่หลาย ก่อนใช้งานต้องมีการติดตั้ง MySQL กันก่อนนะครับ
เมื่อติดตั้งสำเร็จเรามาเริ่มสร้างฐานข้อมูล (database) กันเลย ใช้คำสั่งนี้ครับ

create database books;

เมื่อสร้าง database แล้วให้เราเรียกใช้ด้วยคำสั่ง

use books;

หลังจากนี้เราสามารถสร้างตาราง (Table) ได้แล้วตามตัวอย่างที่ 1

ตัวอย่างที่ 1 สร้าง Table สำหรับ database Bookstore
CREATE TABLE CATEGORY (ID INT NOT NULL AUTO_INCREMENT ,CATEGORY_DESCRIPTION VARCHAR(20) NOT NULL ,PRIMARY KEY (ID));

CREATE TABLE BOOK (ID INT NOT NULL AUTO_INCREMENT,CATEGORY_ID INT NOT NULL ,BOOK_TITLE VARCHAR(60) NOT NULL,PUBLISHER VARCHAR(60) NOT NULL ,PRIMARY KEY (ID) ,CONSTRAINT FK_BOOK_1 FOREIGN KEY (CATEGORY_ID) REFERENCES CATEGORY(ID));

CREATE TABLE AUTHOR (ID INT NOT NULL AUTO_INCREMENT ,BOOK_ID INT NOT NULL ,FIRST_NAME VARCHAR(20) NOT NULL ,LAST_NAME VARCHAR(20) NOT NULL ,PRIMARY KEY (ID) ,CONSTRAINT FK_AUTHOR_1 FOREIGN KEY (BOOK_ID) REFERENCES BOOK (ID));

เราสามารถตรวจสอบการสร้าง Table โดยใช้คำสั่ง

show tables;

จะได้ผลลัพธ์ตามรูปที่ 2

รูปที่ 2

เราสามารถดูโครงสร้าง Table ได้โดยการใช้คำสั่ง

describe
หรือ
desc

จะได้ผลลัพธ์ตามรูปที่ 3

รูปที่ 3

เรามาลองเพิ่มข้อมูลลง Table กันไว้สำหรับใช้พัฒนากันใน series ต่อไป

insert into category (category_description) values ('Clojure');insert into category (category_description) values ('Groovy');

insert into category (category_description) values ('Java');insert into category (category_description) values ('Scala');

insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (1, 'Practical Clojure', 'Apress');

insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (2, 'Beginning Groovy, Grails and Griffon', 'Apress');

insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (2, 'Definitive Guide to Grails 2', 'Apress');insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (2, 'Groovy and Grails Recipes', 'Apress');

insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (3, 'Modern Java Web Development', 'Apress');

insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (3, 'Java 7 Recipes', 'Apress');

insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (3, 'Java EE 7 Recipes', 'Apress');

insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (3, 'Beginning Java 7 ', 'Apress');

insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (3, 'Pro Java 7 NIO.2', 'Apress');insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (3, 'Java 7 for Absolute Beginners', 'Apress');

insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (3, 'Oracle Certified Java Enterprise Architect Java EE7', 'Apress');

insert into Book (CATEGORY_ID, BOOK_TITLE, PUBLISHER) values (4, 'Beginning Scala', 'Apress');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (1, 'Luke', 'VanderHart');insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (2, 'Vishal', 'Layka');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (3, 'Jeff', 'Brown');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (4, 'Bashar', 'Jawad');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (5, 'Vishal', 'Layka');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (6, 'Josh', 'Juneau');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (7, 'Josh', 'Juneau');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (8, 'Jeff', 'Friesen');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (9, 'Anghel', 'Leonard');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (10, 'Jay', 'Bryant');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (11, 'B V', 'Kumar');

insert into Author (BOOK_ID, FIRST_NAME, LAST_NAME) values (12, 'David', 'Pollak');

เราสามารถเรียกดูข้อมูลที่ได้ทำการเพิ่มลง Table ได้ตามตัวอย่างในรูปที่ 4

รูปที่ 4

ตอนต่อไปติดตามได้ที่


อ้างอิง
ผู้เขียน: procodeblog



Create Date : 07 พฤศจิกายน 2557
Last Update : 7 พฤศจิกายน 2557 22:18:04 น. 0 comments
Counter : 270 Pageviews.

ชื่อ :
Comment :
  *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

เด็กขงเบ้ง
Location :
กรุงเทพฯ Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 1 คน [?]




Friends' blogs
[Add เด็กขงเบ้ง's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.