實驗 1: 景點資料庫建置
DESCRIPTION
實驗 1: 景點資料庫建置. 本次實驗內容在資料庫系統建置部分 , 主要是建置使用者與各個景點間的資料 , 實習資料庫的設計要點與建置方法. 文史脈流行動導覽系統. http://deh.csie.ncku.edu.tw/deh/index.html 本次實習 , 我們參考文史脈流行動導覽系統之資料庫設計 , 以使用者和各個景點內容為主. ER-model. 實體 (Entity) 關係說明. Schema. User_profile < user_id , user_name, password, email, gender, interest> Interest - PowerPoint PPT PresentationTRANSCRIPT
實驗 1:景點資料庫建置
本次實驗內容在資料庫系統建置部分 ,主要是建置使用者與各個景點間的資料 ,實習資料庫的設計要點與建置方法
<#p1>
文史脈流行動導覽系統• http://deh.csie.ncku.edu.tw/deh/index.html• 本次實習 ,我們參考文史脈流行動導覽系統之資料庫設計 ,以使用者和各個景點內容為主
2
ER-model
3
實體 (Entity)關係說明
實體名稱 意義 與其他實體間的關係
user_profile 使用者 1. 可建置多筆推薦行程2. 可上傳多筆景點
route_planning 行程 由使用者建置之行程
POI 景點 使用者可以上傳景點內容 ,上傳的景點可以給其他使用者瀏覽
sequence 行程內容 行程內的詳細景點介紹
4
Schema
• User_profile <user_id, user_name, password, email, gender, interest>
• Interest–藝術文化、視聽娛樂、運動體育、教育學習、休閒旅遊、科學科技、社會人文、購物逛街、流行時尚、醫療保健
5
(Cont.)
欄位 意義 資料型態
user_id 使用者編號 ,主鍵 (自動增加 ) int(10)auto_increment
user_name 使用者名字 varchar(20)
password 使用者密碼 varchar(50)
email 使用者電子郵件 varchar(100)
gender 使用者性別 int(1)
interest 使用者的興趣 varchar(150)
6
(Cont.)
• POI <POI_id, POI_title, POI_decription, POI_address, latitude, longitude, picture_url, user_id>
7
(Cont.)
8
欄位 意義 資料型態
POI_id 景點編號 ,主鍵 (自動增加 ) int(10)auto_increment
POI_title 景點名稱 varchar(20)
POI_description 景點介紹 varchar(400)
POI_address 景點地址 varchar(150)
latitude 景點的緯度 float(10,6)
longitude 景點的經度 float(10,6)
picture_url 景點的圖片連結 varchar(100)
user_id外來鍵 (foreign key),參照user_profile表單底下 user_id欄位
int(10)
(Cont.)
• route_planning <route_id, route_title, route_description, user_id>
9
(Cont.)
10
欄位 意義 資料型態
route_id 行程編號 ,主鍵 (自動增加 )
int(10)auto_increment
route_title 行程名稱 varchar(20)
route_description 行程描述 varchar(400)
user_id外來鍵 (foreign key),參照user_profile表單底下user_id欄位
int(10)
(Cont.)
• sequence <sequence_id, sequence, stay_time, next_time, route_id, POI_id>
11
(Cont.)
12
欄位 意義 資料型態
sequence_id 行程內容編號 ,主鍵 (自動增加 ) int(10)auto_increment
Sequence 參觀的景點順序 int(10)
stay_time 在當前景點所停留的時間 int(10)
next_time 移動到下一個景點所需要花費的時間 int(10)
route_id外來鍵 (foreign key),參照 route_planning表單底下 route_id欄位 ,有著相同 route_id的景點 ,被歸納為同一個行程內
int(10)
POI_id外來鍵 (foreign key),參照 POI表單底下 POI_id欄位 ,連結行程內的景點資料 int(10)
查詢範例• 找出經度在 110-150以及緯度在 20-40間的景點名稱 :
SELECT POI_titleFROM POIWHERE 110 <= longitude <=150AND 20 <= latitude <=40
13
(Cont.)
• 找出興趣是運動體育的使用者名稱與email
SELECT user_name, emailFROM user_profileWHERE interest = '運動體育 '
14
(Cont.)
• 找出由興趣是運動體育的使用者所建置的景點名稱
SELECT POI.POI_titleFROM user_profile, POIWHERE user_profile.interest = '運動體育 'AND user_profile.user_id = POI.user_id
15
(Cont.)
• 找出建置的景點位置座標座落於經度110-150以及緯度 20-40間的女性使用者名稱
SELECT user_profile.user_nameFROM POI, user_profileWHERE 110 <= POI.longitude <=150AND 20 <= POI.latitude <=40AND POI.user_id = user_profile.user_idAND user_profile.gender =2
16
(Cont.)
• 找出包含太魯閣景點的行程建議SELECT * FROM sequence AS SEWHERE SE.Route_idIN (SELECT S.Route_idFROM sequence AS S, POIWHERE POI.POI_title = “太魯閣 "AND POI.POI_id = S.POI_id
)ORDER BY SE.Route_id ASC , SE.sequene ASC
17