iT邦幫忙

0

php jquery ui 卡住一問

各位大大好

小弟有事一問...

目前在寫一個功能,使用Jquery UI中的draggable功能,配和PHP & Mysql 做出拖拉式的行程規劃。

現在卡住的地方是,把東西拉到『行程規劃』那一欄之後,應該是再用Ajax的功能,更新或新增MySql裏的資料表,不過...因為每個人排出來的行程規劃數量,都不一樣...

這樣在儲存『行程規劃』的資料表或整個架構,該怎麼設計...會比較恰當?

因為這問題已經卡了好久,小弟大腦有限,特地上來,請教各位大大...

2013/08/28 太陽哲齡

1 個回答

14
wiseguy
iT邦超人 1 級 ‧ 2013-08-28 23:08:28
最佳解答

儲存資料表規劃,大概就長這樣吧:

<pre class="c" name="code">create table 使用者 (
	user_id	int unsigned not null auto_increment, # 使用者ID
	user_name varchar(30) not null,		# 使用者姓名
	:					# 其它欄位
	:
	primary key(user_id)
);

create table 景點 (
	serial_no   int unsigned not null auto_increment, # 景點序號
	name varchar(100) not null,			# 景點名稱
	:					# 其它欄位
	:
	primary key(serial_no)
);

create  table 行程規劃 (
	user_id	int unsigned not null,		# 使用者ID
	serial_no	int unsigned not null,		# 景點序號
	order_no int unsigned not null default 0,	# 規劃順序
	:
	:
	primary key(user_id, serial_no)
);

每拖一個過去,就存入[行程規劃]這個 table 即可。

看更多先前的回應...收起先前的回應...

讚

SunAllen iT邦好手 1 級 ‧ 2013-08-28 23:17:02 檢舉

照wiseguy大大說的

如果有10個景點,就將10個景點的序號 都塞入 order_no這個欄位嗎? 還是塞入serial_no 這個欄位呢?

wiseguy iT邦超人 1 級 ‧ 2013-08-28 23:25:19 檢舉

10個景點的序號 逐一塞入serial_no 這個欄位。也就是插入 10 筆的意思。不是把10個景點的序號通通塞到一筆資料去喔。而 order_no 是 1~10 的數字,用來表示這 10 個景點的順序。

使用者
user_id,user_name

U01, 總裁
U02, 賽大

景點
serial_no,name

V01,卑南文化公園
V02,台東彩虹55號
V03,32 La Casa Mia
V04,新東糖廠

行程規劃
user_id,serial_no,order_no

U01,V02,1
U01,V03,2
U01,V04,3

iT邦幫忙MVPwiseguy提到:
每拖一個過去,就存入[行程規劃]這個 table 即可。

實作上還有一個地方要克服
就是「拉」進行程規劃 table 的時侯
該使用者該行程的所有 order_no 都得重排
暈

iT邦幫忙MVPwiseguy提到:
每拖一個過去

另外還有一個功能上麻煩的事
就是「允不允許使用者從中間加入景點」
例如在第1項和第2項之間加入景點
理論上要允許比較方便
但是程式寫起來就更麻煩了
忙

wiseguy iT邦超人 1 級 ‧ 2013-08-29 08:12:06 檢舉

antijava 兄的疑慮,在這個問題已討論過:
http://ithelp.ithome.com.tw/question/10121467
每拉一筆的儲存動作,只要兩個 SQL 就解決了 (delete all & extended insert)

總裁 iT邦好手 1 級 ‧ 2013-08-29 08:13:49 檢舉

萬一我要排兩套行程,那就更麻煩了....暈

謝謝 wiseguy 大大教學,又學會一招了!
筆記筆記筆記
謝謝謝謝謝謝

cdfu提到:
萬一我要排兩套行程,那就更麻煩了....

總裁的黑暗秘密行程表!!汗

總裁 iT邦好手 1 級 ‧ 2013-08-29 09:28:08 檢舉

這個行程,全世界只有三個人知道.....毆飛逃跑

**wiseguyhttp://ithelp.ithome.com.tw/question/10121467**提到:
antijava 兄的疑慮,在這個問題已討論過:

我知道
我只是考考你還記不記得
臉紅

我要發表回答

立即登入回答