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

看板Database作者 (大魯蛇)時間11年前 (2014/09/21 20:19), 11年前編輯推噓2(201)
留言3則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《meowyih (meowyih)》之銘言: : 資料庫名稱:MySQL : 我只有非常基本的資料庫的經驗,如果問題太笨,請見諒 m(_ _)m : 舉例來說,假設一個人的 TABLE 的欄位有名字、地址、和個人照片: : 但是因為某些原因,我們被要求一個人的圖片和地址的總數不能有上限, : 有人可能沒圖片與地址,有人可能有上百個圖片和地址, : 請問這種情況的 TABLE 要長成什麼樣,或是資料庫要怎麼設計呢? 這位溫拿你好,可以參考一下本魯蛇的做法, 因為這個狀況中,地址和個人照片是相似的東西,所以本魯蛇只拿其中一個做舉例, 這個資料庫,需要至少兩個資料表: 1.人資料表,用來存放這個人的資訊 2.地址資料表,用來存放所有人的地址,而其中會有一個欄位與人資料表   相關聯,來表明這個(一或多個)地址屬於哪個人。 人資料表 主索引鍵 姓名 50 勝文 地址資料表 主索引鍵 人資料表索引鍵 地址 100 50 台北帝寶 101 50 美國帝寶 當你有了這樣的資料,就可以利用join的技巧,查出某個人擁有那些帝寶了。 這邊是查詢語法: select 人資料表.姓名, 地址資料表.地址 from 人資料表 left join 地址資料表 on 人資料表.主索引鍵 = 地址資料表.人資料表索引鍵 where 人資料表.主索引鍵 = 50 結果會是: 姓名   地址 勝文 台北帝寶 勝文   美國帝寶 因為本魯蛇沒有把檔案放到過網路上,所以就直接把指令碼貼出來了, 希望有善心人士可以推薦本魯蛇一個方便其他人下載檔案的方式。 以下是這個資料庫的指令碼: USE [批踢踢資料庫板] GO /****** Object: Table [dbo].[人資料表] Script Date: 2014/9/21 下午 08:16:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[人資料表]( [主索引鍵] [int] NOT NULL, [姓名] [nvarchar](20) NOT NULL, CONSTRAINT [PK_人資料表] PRIMARY KEY CLUSTERED ( [主索引鍵] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[地址資料表] Script Date: 2014/9/21 下午 08:16:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[地址資料表]( [主索引鍵] [int] NOT NULL, [人資料表索引鍵] [int] NOT NULL, [地址] [nvarchar](50) NOT NULL, CONSTRAINT [PK_地址資料表] PRIMARY KEY CLUSTERED ( [主索引鍵] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO INSERT [dbo].[人資料表] ([主索引鍵], [姓名]) VALUES (50, N'勝文') INSERT [dbo].[地址資料表] ([主索引鍵], [人資料表索引鍵], [地址]) VALUES (100, 50, N'台北帝寶') INSERT [dbo].[地址資料表] ([主索引鍵], [人資料表索引鍵], [地址]) VALUES (101, 50, N'美國帝寶') -- 我覺得TSQL是世界上最強的語言了 阿賣波D甲▁▁▁▁ 其他的應該廢除 薩西斯B骨 ██ - 斯摳鬼2文 □–□ 如果各位有興趣的話,可以現在開始學 但是要安裝SQL Server ψBigLoser 因為我們只會支援精英資料庫,絕對不會接受垃圾 ψdohProject /◣– /█◣ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 113.61.160.28 ※ 文章網址: http://www.ptt.cc/bbs/Database/M.1411301974.A.4F3.html ※ 編輯: BigLoser (113.61.160.28), 09/21/2014 20:20:06

09/21 20:35, , 1F
受教了! 非常感謝這篇清楚又詳細的說明! m(_ _)m
09/21 20:35, 1F

09/21 20:35, , 2F
阿,我這兩個資料表沒設關聯,請溫拿們自己設定
09/21 20:35, 2F

09/22 18:18, , 3F
絕對不接受垃圾
09/22 18:18, 3F
文章代碼(AID): #1K7i9MJp (Database)
討論串 (同標題文章)
文章代碼(AID): #1K7i9MJp (Database)