有網友提出這個問題
http://ithelp.ithome.com.tw/question/10148811#286817
先不管visual studio 2013 , 若是資料庫的Table,你會怎樣設計呢?
是
4/12 王大明
4/12 張小強
4/12 林英明
4/12 吳大
還是
2014/04/12 王大明,張小強,林英明,吳大
我也是選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 .........
我以為裡面會放女優....
我...老鷹為人正直 遇泰大D槽而不為動
chingfeng提到:
老鷹為人正直 遇泰大D槽而不為動
那是因為D槽的重裝步兵陷陣營還沒有出動
tecksin提到:
重裝步兵陷陣營
我感覺到了.....
呼叫老鷹
我乃現代柳下惠,有圖解釋
資料的 schema 與 display 是兩回事。
通常,為了能更好 display 而設計適合的 schema 是理所當然的。
但是,為了能方便 display 而破壞 schema 該有的規則,卻可能得不償失。
畢竟,把資料秀出來只是最後一道手續,可以很輕易的調整。
但 schema 設計不良,卻關係到協同開發、資料維護、功能擴充等等的問題,不可謂不慎。
第二種設計,是屬於在同一欄位裡存了多意義的資料,已違反了資料庫設計的原則,當然就屬於不考慮的方案。
選一,原因如下:
1.table 內的每個欄位都必須定義清楚.
日期欄位就是填入'一個'日期,姓名欄位就是填入'一個'姓名
2.若是姓名欄位內填入'一堆'姓名,那麼正規化會有問題
3.假若有個員工基本資料 table 裡面有個姓名欄位,那要如何關連?
4.若是後續有跟姓名欄位相關的 table 要下 sql 指令時就會變得很困難,或造成效能不好,甚或
sql 指令下不出來
至於 "2014/04/12 王大明,張小強,林英明,吳大" 可視為選一後可產生的結果:
用 sql 指令選出 2014/04/12 得到所有的姓名,後面再加工即可(例如,php 用 while..將姓名串起來),其後再顯示在畫面上即可
沒想到這篇還會被人引用在資料表問題上@.@
就像上面說的2在第一正規化上就有問題了
不過當使用者自己也搞不清楚自己要求的東西這樣能不能做到時,其實這問題就已經很麻煩了,還是該說無解呢
每一位的發表都好棒棒~ (包括我自己)
好想每個都按讚
不如小雨大時常來出個題目
給大家腦力激盪一下?
是蠻可愛的系列嗎???
也可以來個偷笑系列.....