iT邦幫忙

5

關於資料表的規劃

有網友提出這個問題

http://ithelp.ithome.com.tw/question/10148811#286817

先不管visual studio 2013 , 若是資料庫的Table,你會怎樣設計呢?

4/12 王大明
4/12 張小強
4/12 林英明
4/12 吳大

還是

2014/04/12 王大明,張小強,林英明,吳大

0
小財神
iT邦好手 1 級 ‧ 2014-04-18 14:03:49

我可以回答看看嗎?
選1

等待解答中...

0
老鷹(eagle)
iT邦高手 1 級 ‧ 2014-04-18 14:32:49

我也是選1

<pre class="c" name="code">
4/12 王大明
4/12 張小強
4/12 林英明
4/12 吳大

這樣可以玩的東西很多,比較方便
EX:
王大明個人什麼時候要輪班
可以各別list

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

而且人名我會再拉個表出來做
資料表
personnel
1.id[int]
2.name[varchar]
.....
.....

資料表 attendance
1.id[int]
2.date[date]
3.personnelint
....
....
....

<pre class="c" name="code">
SELECT * FROM attendance,personnel 
WHERE attendance.personnel = personnel.id AND .........
總裁 iT邦好手 1 級‧ 2014-04-18 14:41:20 檢舉

我以為裡面會放女優....Orz

我...老鷹為人正直 遇泰大D槽而不為動噴鼻血毆飛

chingfeng提到:
老鷹為人正直 遇泰大D槽而不為動

那是因為D槽的重裝步兵陷陣營還沒有出動

tecksin提到:
重裝步兵陷陣營

我感覺到了.....


呼叫老鷹

我乃現代柳下惠,有圖解釋

0
wiseguy
iT邦超人 1 級 ‧ 2014-04-18 14:43:50

資料的 schema 與 display 是兩回事。
通常,為了能更好 display 而設計適合的 schema 是理所當然的。
但是,為了能方便 display 而破壞 schema 該有的規則,卻可能得不償失。
畢竟,把資料秀出來只是最後一道手續,可以很輕易的調整。
但 schema 設計不良,卻關係到協同開發、資料維護、功能擴充等等的問題,不可謂不慎。
第二種設計,是屬於在同一欄位裡存了多意義的資料,已違反了資料庫設計的原則,當然就屬於不考慮的方案。

0
rogeryao
iT邦高手 7 級 ‧ 2014-04-18 14:54:30

選一,原因如下:
1.table 內的每個欄位都必須定義清楚.
日期欄位就是填入'一個'日期,姓名欄位就是填入'一個'姓名
2.若是姓名欄位內填入'一堆'姓名,那麼正規化會有問題
3.假若有個員工基本資料 table 裡面有個姓名欄位,那要如何關連?
4.若是後續有跟姓名欄位相關的 table 要下 sql 指令時就會變得很困難,或造成效能不好,甚或
sql 指令下不出來

至於 "2014/04/12 王大明,張小強,林英明,吳大" 可視為選一後可產生的結果:
用 sql 指令選出 2014/04/12 得到所有的姓名,後面再加工即可(例如,php 用 while..將姓名串起來),其後再顯示在畫面上即可

0
temo
iT邦新手 1 級 ‧ 2014-04-18 16:41:45

汗沒想到這篇還會被人引用在資料表問題上@.@
就像上面說的2在第一正規化上就有問題了

不過當使用者自己也搞不清楚自己要求的東西這樣能不能做到時,其實這問題就已經很麻煩了,還是該說無解呢

0
小財神
iT邦好手 1 級 ‧ 2014-04-18 16:51:47

每一位的發表都好棒棒~ (包括我自己)
好想每個都按讚讚

不如小雨大時常來出個題目
給大家腦力激盪一下?

是蠻可愛的系列嗎???

總裁 iT邦好手 1 級‧ 2014-04-18 17:07:20 檢舉

也可以來個偷笑系列.....偷笑

0
badboy01
iT邦新手 5 級 ‧ 2014-04-18 17:59:31

看完各位高手發言小弟非常羞愧~資料庫該去好好再複習一下了@@"

我要留言

立即登入留言