Board logo

標題: create mysql using isp [打印本頁]

作者: pwct    時間: 2008-11-23 12:44     標題: create mysql using isp

我想input 1個名
之後就會行create tabe 句code
就create table 個名就係input 個個名
其實我係想整個評分表
新增1個表 = create 一個table ( 每個比賽)
入面可以比人新加項目
每新加一項目 就= 新加一欄位

點先得?
新加既動作 係web上面
唔係直接人手打comment 去mysql create
作者: thinkpanda    時間: 2008-11-23 12:52

原帖由 pwct 於 2008-11-23 12:44 發表
我想input 1個名
之後就會行create tabe 句code
就create table 個名就係input 個個名
其實我係想整個評分表
新增1個表 = create 一個table ( 每個比賽)
入面可以比人新加項目
每新加一項目 就= 新加一欄位

點先得?
新加既動作 係web上面
唔係直接人手打comment 去mysql create


你當然可以係你個program create table.
但係從database design 既角度, 每個比賽開一個新既table 係非常錯既做法.
正常黎講應該將所有比賽放係同一個table.
作者: Rudy    時間: 2008-11-23 18:23

For M$ sql server, 我幫公司某Program真係會每次Report都會在Sql server create一堆Table,
不過係Temporary Table, 當user logout後會自動刪除.
我估mysql server都有類似的東西.
作者: rocketdive04    時間: 2008-11-23 18:35

原帖由 Rudy 於 2008-11-23 18:23 發表
For M$ sql server, 我幫公司某Program真係會每次Report都會在Sql server create一堆Table,
不過係Temporary Table, 當user logout後會自動刪除.
我估mysql server都有類似的東西.


store procedures?
作者: pwct    時間: 2008-11-23 18:40

原帖由 thinkpanda 於 2008-11-23 12:52 發表


你當然可以係你個program create table.
但係從database design 既角度, 每個比賽開一個新既table 係非常錯既做法.
正常黎講應該將所有比賽放係同一個table.


我都唔知,
咁放係同一個table ,,所有比賽
會有d咩欄位?
項目名?咁項目d分呢?
但係要新加/減 評分既項目
變左欄位就要add同drop
唔知點整
所以問點樣可以新加項目個時就會add 個欄位放項目個名
同項目既分
作者: rocketdive04    時間: 2008-11-23 18:47

原帖由 pwct 於 2008-11-23 18:40 發表


我都唔知,
咁放係同一個table ,,所有比賽
會有d咩欄位?
項目名?咁項目d分呢?
但係要新加/減 評分既項目
變左欄位就要add同drop
唔知點整
所以問點樣可以新加項目個時就會add 個欄位放項目個名
同項目既分


can you explain in brief the situation? like the flow what result you wanna make?
maybe i can give you some ideas
作者: Rudy    時間: 2008-11-23 20:12

原帖由 rocketdive04 於 2008-11-23 18:35 發表


store procedures?


吾係, 我記得好似係個Table Name用"#"字頭定係甚麼, 就會變成Temporary Table,
不過個Program係三年幾前寫, 實際係甚麼字頭, 我要查番先知.
作者: Rudy    時間: 2008-11-23 20:23

原帖由 pwct 於 2008-11-23 18:40 發表


我都唔知,
咁放係同一個table ,,所有比賽
會有d咩欄位?
項目名?咁項目d分呢?
但係要新加/減 評分既項目
變左欄位就要add同drop
唔知點整
所以問點樣可以新加項目個時就會add 個欄位放項目個名
同項目既分

看你所講, 其實不必create tmp table 咁麻煩, Normalization得好就夠, 當比賽者有不同的項目, 只要set relation做得好d就足夠.
吾使又add field 又drop field, 這樣只會令你愈來愈亂.
作者: thinkpanda    時間: 2008-11-23 21:29

原帖由 pwct 於 2008-11-23 18:40 發表


我都唔知,
咁放係同一個table ,,所有比賽
會有d咩欄位?
項目名?咁項目d分呢?
但係要新加/減 評分既項目
變左欄位就要add同drop
唔知點整
所以問點樣可以新加項目個時就會add 個欄位放項目個名
同項目既分


都唔應該加減欄位. 正確既設計係唔應該需要係正常操作時改變database design.
作者: thinkpanda    時間: 2008-11-23 21:30

我想像樓主既資料係咁樣

match (id, name)
match_item (id, match_id, name)
score (id, match_id, score)
作者: laputafish    時間: 2008-11-23 22:56

原帖由 Rudy 於 2008-11-23 20:12 發表


吾係, 我記得好似係個Table Name用"#"字頭定係甚麼, 就會變成Temporary Table,
不過個Program係三年幾前寫, 實際係甚麼字頭, 我要查番先知.

我都成日用.
果個係將一個 變數 定義為 Table. 好好用. 不過遺憾係呢個變數唔可以以參數型式傳入另一個 stored procedure 或 function 度黎用.

作者: Rudy    時間: 2008-11-23 23:50

的確方便

[ 本帖最後由 Rudy 於 2008-11-23 23:54 編輯 ]
作者: alextamly    時間: 2008-11-24 01:05

最好就3個table玩下..
一個table就記比賽(比賽id,比賽名)
第二個table就記項目(項目id,比賽id,項目名)
第三個tabel就記什項(項目id,名,分....)

你明唔明呢....你冇sqldb底..我唔係好識得解釋..哈哈...
作者: pwct    時間: 2008-11-24 06:51

原帖由 thinkpanda 於 2008-11-23 21:30 發表
我想像樓主既資料係咁樣

match (id, name)
match_item (id,match_id , name)
score (id, match_id, score)

咁參加者報名邊一比賽d data都係放係match (id, name)

另外開多個table?
i.e. app(id, match_id , name)?

咁參賽者個名同參賽者個id係score?
member  (id, name)
i.e. score (id, match_id, member_id, member_name ,score)  ?

match_item (id, match_id, name)
score (id, match_id, score)
點連接?
我試過 我可以用while loop 加 不同評分項目
咁score點樣input?
我用while loop 佢只係入得1個分
其他評分項目 入5到分

[ 本帖最後由 pwct 於 2008-11-24 07:09 編輯 ]
作者: pwct    時間: 2008-11-24 06:54

原帖由 alextamly 於 2008-11-24 01:05 發表
最好就3個table玩下..
一個table就記比賽(比賽id,比賽名)
第二個table就記項目(項目id,比賽id,項目名)
第三個tabel就記什項(項目id,名,分....)

你明唔明呢....你冇sqldb底..我唔係好識得解釋..哈哈...

panda 大大 話第三個tabel就記 比賽id
而你就寫項目id


邊樣先岩?
作者: pwct    時間: 2008-11-24 06:57

原帖由 rocketdive04 於 2008-11-23 18:47 發表


can you explain in brief the situation? like the flow what result you wanna make?
maybe i can give you some ideas

因為我要可以新加/刪減 評分項目 來評分
不知怎樣做
作者: thinkpanda    時間: 2008-11-24 09:43

原帖由 pwct 於 2008-11-24 06:51 發表
咁參加者報名邊一比賽d data都係放係match (id, name)

另外開多個table?
i.e. app(id, match_id , name)? 開多個table, 除非每個比賽都只有一個人參加啦

咁參賽者個名同參賽者個id係score?
member  (id, name)
i.e. score (id, match_id, member_id, member_name ,score)  ?

score 就唔應該有member_name, 因為你已經擺左係member table, 另外score 唔需要match_id, 只需要match_item_id

match_item (id, match_id, name)
score (id, match_id, score)
點連接?


假設你個score table 係 (id, match_item_id, score)
select * from match_item as mi, score as s where s.match_item_id = mi.id


我試過 我可以用while loop 加 不同評分項目
咁score點樣input?
每個score 都insert 一個record.
我用while loop 佢只係入得1個分
其他評分項目 入5到分





123456
作者: rocketdive04    時間: 2008-11-24 10:08

原帖由 pwct 於 2008-11-24 06:57 發表

因為我要可以新加/刪減 評分項目 來評分
不知怎樣做


create 項目 table
項目id int identity
項目name nvarchar(50)
項目 Description (100)

but how would u like to store the score?
like this ?
scoreid, person name, 項目id, score?
作者: pwct    時間: 2008-11-24 10:14

咁member table 除左(id, name) 仲有d咩?
score 無member_name
咁點知該參加者 佢所有評分項目係幾分?
同埋總分 係咪係score 加個項叫total?


每個score 都insert 一個record.
應該d code點寫?
作者: pwct    時間: 2008-11-24 10:17

原帖由 rocketdive04 於 2008-11-24 10:08 發表


create 項目 table
項目id int identity
項目name nvarchar(50)
項目 Description (100)

but how would u like to store the score?
like this ?
scoreid, person name, 項目id, score?

可以新增/減少 評分的項目 及其分數
不懂code 怎樣寫
作者: thinkpanda    時間: 2008-11-24 10:29

原帖由 pwct 於 2008-11-24 10:14 發表
咁member table 除左(id, name) 仲有d咩?
score 無member_name
咁點知該參加者 佢所有評分項目係幾分?
同埋總分 係咪係score 加個項叫total?


每個score 都insert 一個record.
應該d code點寫?


score table 有member id 嘛, 咁就可以搵到個member name.
搵分數唔係靠member name, 而係靠member id.
如果你唔係有好多項目, 總分用sql 加埋score 就得, 不需另設total.

SQL 點寫你就要自己睇下書啦.
作者: thinkpanda    時間: 2008-11-24 10:30

原帖由 pwct 於 2008-11-24 10:17 發表

可以新增/減少 評分的項目 及其分數
不懂code 怎樣寫


每加一個項目就加一個match_item record, 就係咁簡單.
作者: rocketdive04    時間: 2008-11-24 10:58

原帖由 pwct 於 2008-11-24 10:17 發表

可以新增/減少 評分的項目 及其分數
不懂code 怎樣寫


php? jsp?
作者: pwct    時間: 2008-11-24 11:02

原帖由 thinkpanda 於 2008-11-24 10:29 發表


score table 有member id 嘛, 咁就可以搵到個member name.
搵分數唔係靠member name, 而係靠member id.
如果你唔係有好多項目, 總分用sql 加埋score 就得, 不需另設total.

SQL 點寫你就要自己睇下書啦.

讓我重新整理下
member (id, username, pw) - 注冊會員
app (id, match_id ,member_id, name) - 報名
match (id, name) - 比賽名
match_item (id, match_id, name) - 評分項目
score (id, "app_id"? ,match_item_id, score) - 項目評分

死啦,唔明tim
e+ match_item  同 score 係1對1?
member (id, username, pw) (1 , pwct , pw)
app (id, match_id ,member_id, name)   (1 ,1, 1,pwct)
match (id, name) ( 1, test)
match_item (id, match_id, name) ( 1 , 1, a) ( 2 , 1, a)
score (id, "app_id"?,match_item_id, score)  (1 ,1, 1, 70 ) (1 ,1, 2, 50 )  
then
pwct係比賽test   係a項目 = 70分?
pwct係比賽test   係b項目 = 50分?

咁樣?

咁score 咪都要加match_id 唔係點知邊個參加者參加邊項比賽?

[ 本帖最後由 pwct 於 2008-11-24 11:04 編輯 ]
作者: pwct    時間: 2008-11-24 11:05

原帖由 rocketdive04 於 2008-11-24 10:58 發表


php? jsp?

jsp~~~~~~~~~~
作者: GPoker    時間: 2008-11-24 17:00

用返好d既id名來睇就係咁:
member(member_id,name)
app(member_id,match_id)
match(match_id,match_name)
match_item(match_id,match_item_id,match_item_name)
score(match_item_id,score)

同一場比賽(match),有兩種項目(match_item),每種項目有各自分數(score)。

不過有無必要將項目分數分出來做獨立table呢?
其實應該可以放落match_item度都得ga wo...

[ 本帖最後由 GPoker 於 2008-11-24 17:48 編輯 ]
作者: thinkpanda    時間: 2008-11-24 17:02

原帖由 GPoker 於 2008-11-24 17:00 發表
用返好d既id名來睇就係咁:
member(member_id,name)
app(member_id,match_id)
match(match_id,match_name)
match_item(match_id,match_item_id,match_item_name)
type-score(match_item_id,score)

同一場比賽(match), ...


睇下分數係跟比賽定跟參賽者啦.
作者: pwct    時間: 2008-11-24 17:50

原帖由 GPoker 於 2008-11-24 17:00 發表
用返好d既id名來睇就係咁:
member(member_id,name)
app(member_id,match_id)
match(match_id,match_name)
match_item(match_id,match_item_id,match_item_name)
score(match_item_id,score)

同一場比賽(match),有兩種 ...

咁點知某會員係某比賽 既評分項目係幾分?
係咪無關聯到?
作者: GPoker    時間: 2008-11-25 14:47

原帖由 pwct 於 2008-11-24 17:50 發表

咁點知某會員係某比賽 既評分項目係幾分?
係咪無關聯到?

關聯肯定有,不過係用select搞je...

select s.score from member m, match ma, match_item mi, score s
where m.member_name like "你要搵既人既名" and m.member_id = ma.match_id
and ma.match_id = mi.match_id and mi.match_item_id = s.match_item_id

不過就唔知我句statement有無錯啦
作者: pwct    時間: 2008-11-25 14:59

原帖由 GPoker 於 2008-11-25 14:47 發表

關聯肯定有,不過係用select搞je...

select s.score from member m, match ma, match_item mi, score s
where m.member_name like "你要搵既人既名" and m.member_id = ma.match_id
and ma.match_id = mi.match_id a ...

參加者同各評分項目分數係program 上面關聯
唔駛係mysql?
咁就可以做到
每個參加者 ( a,b,c,d,e ,total)[評分項目] ( 10,9,8,7,6,total) [分數]
咁樣?
作者: rocketdive04    時間: 2008-11-25 15:23

原帖由 pwct 於 2008-11-25 14:59 發表

參加者同各評分項目分數係program 上面關聯
唔駛係mysql?
咁就可以做到
每個參加者 ( a,b,c,d,e ,total)[評分項目] ( 10,9,8,7,6,total) [分數]
咁樣?


you need to create database in the mysql server..  and later you need to write code to make jsp pages connect to the mysql database

1 - you need to make connection to the mysql ( import driver mysql driver, create connection code, create statement ,resultset and of course your string sql command)
( i use netbeans 6.5 ide)
作者: pwct    時間: 2008-11-25 15:35

原帖由 rocketdive04 於 2008-11-25 15:23 發表


you need to create database in the mysql server..  and later you need to write code to make jsp pages connect to the mysql database

1 - you need to make connection to the mysql ( import driver mysq ...

基本那些已經做了
我本身已經有評分功能但係在mysql定了5個欄位(只能有5項評分)
老師要求 適合各種比賽 我才不懂怎樣可以新增/減少項目
和同時不同比賽有不同評分表
作者: thinkpanda    時間: 2008-11-25 15:52

原帖由 pwct 於 2008-11-25 15:35 發表

基本那些已經做了
我本身已經有評分功能但係在mysql定了5個欄位(只能有5項評分)
老師要求 適合各種比賽 我才不懂怎樣可以新增/減少項目
和同時不同比賽有不同評分表


你有無讀過database normalization? 有既話應該知點做
作者: rocketdive04    時間: 2008-11-25 15:56

原帖由 pwct 於 2008-11-25 15:35 發表

基本那些已經做了
我本身已經有評分功能但係在mysql定了5個欄位(只能有5項評分)
老師要求 適合各種比賽 我才不懂怎樣可以新增/減少項目
和同時不同比賽有不同評分表


新增項目 insert into table
減少項目 delete from table where 項目 = xx

和同時不同比賽有不同評分表
i dunno how is your 評分表 table created like what...maybe you can show what have you created on this table
作者: alextamly    時間: 2008-11-25 15:58

原帖由 thinkpanda 於 2008-11-25 15:52 發表


你有無讀過database normalization? 有既話應該知點做


我估計..佢應該冇...
作者: alextamly    時間: 2008-11-25 16:01

你要自搵出各項目o既相同性..之後先做個table....唔係係唔係都做table...
重有..你識唔識咩係join,left join, right join, inner join??
如果唔識...講左俾你聽都冇用架喎...因為你都唔識去運用...(講衰d..同抄人功課冇分別)..
作者: rocketdive04    時間: 2008-11-25 16:03

原帖由 alextamly 於 2008-11-25 16:01 發表
你要自搵出各項目o既相同性..之後先做個table....唔係係唔係都做table...
重有..你識唔識咩係join,left join, right join, inner join??
如果唔識...講左俾你聽都冇用架喎...因為你都唔識去運用...(講衰d..同抄人功課冇分別)..


yes use innerjoin to get other tables information (must have relation)
作者: pwct    時間: 2008-11-25 16:25

原帖由 alextamly 於 2008-11-25 16:01 發表
你要自搵出各項目o既相同性..之後先做個table....唔係係唔係都做table...
重有..你識唔識咩係join,left join, right join, inner join??
如果唔識...講左俾你聽都冇用架喎...因為你都唔識去運用...(講衰d..同抄人功課冇分別)..

真係唔識
mysql 書有講?
好多都係mysql & php
d code 都係相同?
作者: thinkpanda    時間: 2008-11-25 16:28

原帖由 pwct 於 2008-11-25 16:25 發表

真係唔識
mysql 書有講?
好多都係mysql & php
d code 都係相同?


你要睇既唔係MySQL 既書, 而係database design 既書.
作者: GPoker    時間: 2008-11-25 16:42

就當你有100米、體操同跳遠咁先啦。
先當100米入面既評分項目只有時間。
體操應該有n樣項目,就當美感同難度兩種分數吧。
跳遠就假設距離同時間吧。
咁既話match就有3個記錄,100米、體操同跳遠。
match_item就有5個記錄:
match_item_id:1,match_id(100米),name(時間)
match_item_id:2,match_id(跳遠),name(距離)
match_item_id:3,match_id(跳遠),name(時間)
match_item_id:4,match_id(體操),name(美感)
match_item_id:5,match_id(體操),name(難度)
同樣score一樣有5個記錄,分別記錄住match_item入面每種評分項目既分數。
咁樣既話就算項目名相同,比賽類型唔同都唔會相撞。

以上為mysql入面table整法。

老實講,你無sql底子,就算幫你create table同入埋data,你都唔識用返sql去search返d data吧?

而且就算識php、jsp,除非用d app寫或extension搞,唔係你點都用返sql command(e.g. select、update、delete等)去搞,而唔係單單識寫php/jsp就得。

如果你真係又懶又唔係咁識既,可以試下玩vb lo,有晒圖形介面俾你玩
作者: pwct    時間: 2008-11-25 17:50

原帖由 GPoker 於 2008-11-25 16:42 發表
就當你有100米、體操同跳遠咁先啦。
先當100米入面既評分項目只有時間。
體操應該有n樣項目,就當美感同難度兩種分數吧。
跳遠就假設距離同時間吧。
咁既話match就有3個記錄,100米、體操同跳遠。
match_item就有5個記錄 ...


你個mysql table  我明
但係score 係裝d咩分數?
有好多人參加者
1項score得1格裝分
定個score 係暫存分數 評完再放去另1個table?
應該係每位參加者 佢既score 會放係邊度?

[ 本帖最後由 pwct 於 2008-11-25 18:13 編輯 ]
作者: pwct    時間: 2008-11-25 17:50

原帖由 thinkpanda 於 2008-11-25 16:28 發表


你要睇既唔係MySQL 既書, 而係database design 既書.

:funk:  e d 書係咪好少有
我見sch都唔覺眼
作者: thinkpanda    時間: 2008-11-25 18:13

原帖由 pwct 於 2008-11-25 17:50 發表

:funk:  e d 書係咪好少有
我見sch都唔覺眼


大專圖書館就實有, 呢D咁基本既野都無, 間院校就可以執笠.
作者: pwct    時間: 2008-11-25 18:15

原帖由 thinkpanda 於 2008-11-25 18:13 發表


大專圖書館就實有, 呢D咁基本既野都無, 間院校就可以執笠.


e+ score (id, mach_item_id, score)
只係每個項目放番相應既分數
其實我5明
每位參加者屬於 佢地既每1項既score 會放係邊度?
作者: alextamly    時間: 2008-11-25 18:47

原帖由 pwct 於 2008-11-25 18:15 發表


e+ score (id, mach_item_id, score)
只係每個項目放番相應既分數
其實我5明
每位參加者屬於 佢地既每1項既score 會放係邊度?



Mr A / 跳遠 / 5米
Mr B / 游水25M / 50sec
Mr C / 跑步100米 / 10sec

留唔留意到上面有咩相同地方??

答案:<人名 / 項目 / 成績>
<咁你個table咪只要有以上3個col...之後只要你搵 [Mr A] [跳遠] 就會搵到 [5米]>
明唔明點設計??
作者: pwct    時間: 2008-11-25 19:25

原帖由 alextamly 於 2008-11-25 18:47 發表



Mr A / 跳遠 / 5米
Mr B / 游水25M / 50sec
Mr C / 跑步100米 / 10sec

留唔留意到上面有咩相同地方??

答案:

明唔明點設計??

唔明你
<                                             >
<                                                                                  >
做d咩
名 / 比賽項目 / 分數
你指3個table 咁關聯?


Mr A / 跳遠 / 5米
Mr B / 游水25M / 50sec
Mr C / 跑步100米 / 10sec

Mr A / 跳遠 / 5米
Mr B / 游水25M / 50sec
Mr C / 跑步100米 / 10sec
Mr D / 體操 / 10分(美感)
Mr D / 體操 / 10分(難度)
多過1項評分項目 就咁樣?

參加者既data放係match入面?

[ 本帖最後由 pwct 於 2008-11-25 19:29 編輯 ]
作者: alextamly    時間: 2008-11-26 11:20

類似...
所以你要先了解你o既資料分成幾多項...如果你體操到比其他都多一項..咁就要開多個col俾佢記sub title..但其他就唔會用到o個行..
進一步就係將重覆o既資料(不是項目)集埋一齊..再諗諗佢駛唔駛分開table記...例如人名..可能一個人玩十樣野..咁你只要開個新table記個人名同俾個id佢..之後用join去join埋2個table...
咁你人名o個個table就可以記晒有關o個個人o既資料..例如名/姓/性別/年齡等等.....
作者: pwct    時間: 2008-11-26 15:12

原帖由 alextamly 於 2008-11-26 11:20 發表
類似...
所以你要先了解你o既資料分成幾多項...如果你體操到比其他都多一項..咁就要開多個col俾佢記sub title..但其他就唔會用到o個行..
進一步就係將重覆o既資料(不是項目)集埋一 ...

E+ 我係要FOR不同比賽,maybe some contest have 3 or 5  items, or above / less
SO 唔知EACH CONTEST會有幾項,,
這樣點知加幾多COL?

create a table for store member record
e.g. member(id , name , address...)
then,
match,match_item,score
都放個member_id and member_name into table match,match_item,score  ?
做關聨?

另外, 咩係JOIN?
作者: thinkpanda    時間: 2008-11-26 15:17

原帖由 pwct 於 2008-11-26 15:12 發表

另外, 咩係JOIN?


http://www.google.com.hk/search?q=SQL+tutorial&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

你睇下先開始做啦。
作者: pwct    時間: 2008-11-26 17:10

原帖由 thinkpanda 於 2008-11-26 15:17 發表


http://www.google.com.hk/search? ... mp;client=firefox-a

你睇下先開始做啦。

所謂join ja係
member(id, name)
score(id, "member_id", score)
" "  咁就叫join 左?
作者: thinkpanda    時間: 2008-11-26 17:19

原帖由 pwct 於 2008-11-26 17:10 發表

所謂join ja係
member(id, name)
score(id, "member_id", score)
" "  咁就叫join 左?


唔係。有D好奇點解你會有咁既想法?
所謂join, 係一個SQL 既寫法

select * from member, score where member.id=score.member_id

如果你唔了解係SQL 點做join, 咁前面咁多人講既野其實你都唔會明白。
所以你搞清楚SQL 先。
作者: 超~    時間: 2008-11-26 17:45

唔知我有無諗錯

tblMember
M_Id,Name

資料:
tblMember
1,Ann
2,Peter
3,john

tblMatchItem
MI_Id,Name

資料:
tblMatchItem
1,100米
2,4x100米

tblScore
S_ID,M_ID,MI_Id,score
1,2,2,15s

Select M.Name, MI.Name, s.Score From tblMember m, tblMatchItem mi, tblScore s
Where m.M_id = s.M_Id AND mi.MI_Id = s.MI_Id AND MI_Name = '4x100米'

Result:
Peter,4x100米,15s
作者: pwct    時間: 2008-11-26 18:39

原帖由 thinkpanda 於 2008-11-26 17:19 發表


唔係。有D好奇點解你會有咁既想法?
所謂join, 係一個SQL 既寫法

select * from member, score where member.id=score.member_id

如果你唔了解係SQL 點做join, 咁前面咁多人講既野其實你都唔會明白。
所以你搞清楚SQL 先。

原來係咁
係sql將member.id =score.member_id

member_id先連去member個id到
我以為 打member_id 本身就會自動  = member.id
咁ja係 比賽報名 同 score
都join member_id 去 比賽報名 同 score  個table?
作者: pwct    時間: 2008-11-26 18:47

原帖由 超~ 於 2008-11-26 17:45 發表
唔知我有無諗錯

tblMember
M_Id,Name

資料:
tblMember
1,Ann
2,Peter
3,john

tblMatchItem
MI_Id,Name

資料:
tblMatchItem
1,100米
2,4x100米

tblScore
S_ID,M_ID,MI_Id,score
1,2,2,15s

Select M.Name, MI. ...

咁比賽有好多評分項目
score 個度 點
例如歌唱比賽
member(id,name)
1, peter

match (id ,member_id, name )
1, 1, singcontest

match_item (id , member_id,  match_id, name)
1, 1, 1, 唱功
2, 1, 1, 音準
3, 1, 1, 感情

score(id, member_id, match_id, match_item_id, score)
1, 1, 1, 1, 5
2, 1, 1, 2, 10
3, 1, 1, 3, 20


會咁樣?
作者: rocketdive04    時間: 2008-11-27 08:55

原帖由 pwct 於 2008-11-26 17:10 發表

所謂join ja係
member(id, name)
score(id, "member_id", score)
" "  咁就叫join 左?


i can give an example
student_score table
scoreid 1 (int identity), studentid "1",  score "60"

studentdetails
studentid1, name John, description bla bla, bla bla

so when u use select statement
select scoreid, name, score from student_score table inner join studentdetails on  
studentdetails.studentid = student_score.studentid

result:
StudentID    name                 score
    1                 John                  60

[ 本帖最後由 rocketdive04 於 2008-11-27 08:57 編輯 ]
作者: pwct    時間: 2008-11-27 09:50

原帖由 rocketdive04 於 2008-11-27 08:55 發表


i can give an example
student_score table
scoreid 1 (int identity), studentid "1",  score "60"

studentdetails
studentid1, name John, description bla bla, bla bla

so when u use select statement
sel ...

咁裝評分項目個table
駛5駛放studentid?
因為會顯示
會員a
項目1 10分
項目2 20分
項目3 30分
總分 60分
作者: alextamly    時間: 2008-11-27 12:36

我諗你真係應該去圖書館睇下d database o既書...唔駛分mysql/mssql..你先要o既係concept..之後先再做吧...
作者: GPoker    時間: 2008-11-27 15:19

見你問到咁耐都未解決到,真係建議你去學下sql concept先...如果真係好急既,索性搵朋友幫你寫過個吧...
作者: pwct    時間: 2008-11-27 15:48

原帖由 GPoker 於 2008-11-27 15:19 發表
見你問到咁耐都未解決到,真係建議你去學下sql concept先...如果真係好急既,索性搵朋友幫你寫過個吧...

有人引導會識快d
作者: GPoker    時間: 2008-11-27 16:33

原帖由 pwct 於 2008-11-27 15:48 發表

有人引導會識快d

http://www.w3schools.com/sql/default.asp
http://www.1keydata.com/tw/sql/sql.html

一個英文一個中文,先將你而家個case放下,慢慢學返先啦
作者: pwct    時間: 2008-11-27 16:44

原帖由 GPoker 於 2008-11-27 16:33 發表

http://www.w3schools.com/sql/default.asp
http://www.1keydata.com/tw/sql/sql.html

一個英文一個中文,先將你而家個case放下,慢慢學返先啦

但係我問那些
有沒有錯?
因為才有個方向
作者: pwct    時間: 2008-11-30 14:18

CREATE TABLE `match` (  //比賽項目增加
  `mh_id` int(10) unsigned NOT NULL auto_increment,  //比賽項目id
  `mh_object` varchar(50) default NULL,  //比賽項目名
  `mh_content` text,  //比賽項目內容
  `mh_state` int(10) default NULL,  //比賽項目狀態
  `mh_time` date NOT NULL default '0000-00-00',  //比賽項目時間
  PRIMARY KEY  (`mh_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;

CREATE TABLE `match_reg` ( //比賽會員注冊資料
  `mr_id` int(10) unsigned NOT NULL auto_increment,  //參加者id
  `mh_id` int(10) NOT NULL, //比賽項目id
  `a_id` int(10) NOT NULL, //會員id
  `mr_name` varchar(20) default NULL,  //參加者名
  `mr_content` text,  //參加者名
  `mr_time` datetime NOT NULL default '0000-00-00 00:00:00',  //參加時間
  `mr_yn` varchar(5) NOT NULL default 'n', //是否已評分
  PRIMARY KEY  (`mr_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;

CREATE TABLE `match_item` (  //評分項目增加
  `mi_id` int(10) unsigned NOT NULL auto_increment, //評分項目id
  `mh_id` int(10) NOT NULL, //比賽項目id
  `mr_id` int(10) unsigned NOT NULL, //參加者id
  `mi_name` varchar(50) NOT NULL, //評分項目名
  PRIMARY KEY  (`mi_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=23 ;

CREATE TABLE `match_score` (  //評分項目評分
  `ms_id` int(10) unsigned NOT NULL auto_increment,  //評分項目評分id
  `mr_id` int(10) unsigned NOT NULL,  //參加者id
  `mi_id` int(10) unsigned NOT NULL,  //評分項目id
  `ms_score` float default NULL,  //評分項目分數
  PRIMARY KEY  (`ms_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=24 ;

請問是否這樣?
特別紅色部分 是否放對?
作者: hdvd-rom    時間: 2008-11-30 15:11

原帖由 pwct 於 2008-11-27 16:44 發表

但係我問那些
有沒有錯?
因為才有個方向


唔好講咁多廢話,
你連幼稚園同小學都未讀,就話學人高中選科,有冇咁既道理?
返去自修先再問.
作者: thinkpanda    時間: 2008-12-1 00:55

原帖由 pwct 於 2008-11-30 14:18 發表
CREATE TABLE `match` (  //比賽項目增加
  `mh_id` int(10) unsigned NOT NULL auto_increment,  //比賽項目id
  `mh_object` varchar(50) default NULL,  //比賽項目名
  `mh_content` text,  //比賽項目內容
  `mh_state` int(10) default NULL,  //比賽項目狀態
  `mh_time` date NOT NULL default '0000-00-00',  //比賽項目時間
  PRIMARY KEY  (`mh_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;

CREATE TABLE `match_reg` ( //比賽會員注冊資料
  `mr_id` int(10) unsigned NOT NULL auto_increment,  //參加者id
  `mh_id` int(10) NOT NULL, //比賽項目id
  `a_id` int(10) NOT NULL, //會員id 你係咪會有個會員table?
  `mr_name` varchar(20) default NULL,  //參加者名 如果有個會員table 又何需係呢度放參賽者資料? 除非佢係比賽時有別名啦
  `mr_content` text,  //參加者名 mr_name同mr_content 有乜唔同?
  `mr_time` datetime NOT NULL default '0000-00-00 00:00:00',  //參加時間
  `mr_yn` varchar(5) NOT NULL default 'n', //是否已評分
  PRIMARY KEY  (`mr_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;

CREATE TABLE `match_item` (  //評分項目增加
  `mi_id` int(10) unsigned NOT NULL auto_increment, //評分項目id
  `mh_id` int(10) NOT NULL, //比賽項目id
  `mr_id` int(10) unsigned NOT NULL, //參加者id 呢度有個參賽者ID, 意味每個參賽者都重覆左評分項目名, 係咪有D奇怪呢?
  `mi_name` varchar(50) NOT NULL, //評分項目名
  PRIMARY KEY  (`mi_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=23 ;

CREATE TABLE `match_score` (  //評分項目評分
  `ms_id` int(10) unsigned NOT NULL auto_increment,  //評分項目評分id
  `mr_id` int(10) unsigned NOT NULL,  //參加者id 又來了, 如果呢度有參賽者ID, 咁match item 唔需要
  `mi_id` int(10) unsigned NOT NULL,  //評分項目id
  `ms_score` float default NULL,  //評分項目分數
  PRIMARY KEY  (`ms_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=24 ;


像樣少少架啦,努力!
另一個建議, 學下畫Entity Relationship Diagram, 會幫助你思考database design.
作者: pwct    時間: 2008-12-1 09:01

原帖由 thinkpanda 於 2008-12-1 00:55 發表


像樣少少架啦,努力!
另一個建議, 學下畫Entity Relationship Diagram, 會幫助你思考database design.

咁參加者id 要唔要放係item and score table 度?
作者: thinkpanda    時間: 2008-12-1 09:36

原帖由 pwct 於 2008-12-1 09:01 發表

咁參加者id 要唔要放係item and score table 度?


理由呢?
作者: pwct    時間: 2008-12-1 12:11

原帖由 thinkpanda 於 2008-12-1 09:36 發表


理由呢?

e+我試緊 打數字入去score 個table
但係有次都係得第1個先save到入去

e.g.

評分項目    評分
    a                10 <-- 得e個先save到
    b                20
    c                30
其他就save 5到
score table
就會 ( s_id , s_score)
1 , 10

可5可以

評分項目    評分
    a                10
    b                20
    c                30

1 enter 就save哂3個
i.e.
咁係score table
就會 ( s_id , s_score)
1 , 10
2, 20
3, 30

咁樣
作者: pwct    時間: 2008-12-2 09:08

原帖由 pwct 於 2008-12-1 12:11 發表

e+我試緊 打數字入去score 個table
但係有次都係得第1個先save到入去

e.g.

評分項目    評分
    a                10  

即係我指可唔可以同一時間放幾樣野係同一列入面?





歡迎光臨 電腦領域 HKEPC Hardware (https://h0.hkepc.com/forum/) Powered by Discuz! 7.2