[SQL ] 新手求助,總數上限不確定的資料欄位

看板Database作者 (meowyih)時間10年前 (2014/09/21 16:14), 10年前編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/3 (看更多)
資料庫名稱:MySQL 我只有非常基本的資料庫的經驗,如果問題太笨,請見諒 m(_ _)m 舉例來說,假設一個人的 TABLE 的欄位有名字、地址、和個人照片: TABLE ================================== NAME PICTURE ADDRESS 因為某些原因,一個人可以有多個圖片和地址, 最簡單的 TABLE 可以寫成這樣: TABLE ================================== NAME PICTURE_1 PICTURE_2 PICTURE_3 ADDRESS_1 ADDRESS_2 ADDRESS_3 ... 但是因為某些原因,我們被要求一個人的圖片和地址的總數不能有上限, 有人可能沒圖片與地址,有人可能有上百個圖片和地址, 請問這種情況的 TABLE 要長成什麼樣,或是資料庫要怎麼設計呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.102.183 ※ 文章網址: http://www.ptt.cc/bbs/Database/M.1411287259.A.02C.html

09/21 16:31, , 1F
一張訂單,你不確定裡面會有多少細項的時候
09/21 16:31, 1F

09/21 16:31, , 2F
你會怎麼設計?
09/21 16:31, 2F

09/21 17:40, , 3F
兩張表,一張存人,一張存地址,然後兩張表相互關連
09/21 17:40, 3F
感謝二位的回答,我是有想過,但是實作上做起來怪怪的,舉例來說: CREATE TABLE people_table { name varchar(32) address_table_name varchar(64) picture_table_name varchar(64) } 然後每次產生一個人的時候,做以下的事: // 先 inert 一個人進去 people_table // 然後用該人的 primary key 加上 _address/_picture 產生二個新的 table // 先假設 primary key 叫 meowyih 好了 INSERT into people_table (name, address_table_name, picture_table_name) values ('meowyih', 'meowyih_address', 'meowyih_picture' ); CREATE TABLE meowyih_address { address varchar(64) } CREATE TABLE meowyih_picture { picture varchar(64) } 也就是每次產生一個人的時候,用他的 Primary key 加幾個字元, 產生該人專屬的 Picture 和 Address 的 Table, 這樣做是對的嗎? 感覺怪怪的... :( ※ 編輯: meowyih (36.231.102.183), 09/21/2014 18:18:59

09/21 19:56, , 4F
3個table,第1個table存people_id和name,第2個table存
09/21 19:56, 4F

09/21 19:56, , 5F
people_id和address,第3個table存people_id和picture
09/21 19:56, 5F
文章代碼(AID): #1K7eZR0i (Database)
討論串 (同標題文章)
文章代碼(AID): #1K7eZR0i (Database)