[SQL ] 新手求助,總數上限不確定的資料欄位
資料庫名稱: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
09/21 19:56, 4F
→
09/21 19:56, , 5F
09/21 19:56, 5F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):