目前看起來你的表格邏輯:PIN碼跟廠牌關係是1對1,PIN碼跟編碼是1對多
現在都放在同一個表格暫稱『廠商編碼』
表格設計SQL大概,如下圖跟腳本
會發現PIN碼跟廠牌會有大量重複資料出現
線上測試連結
CREATE TABLE 廠商編碼
([PIN碼] int, [編碼] varchar(3), [廠牌] nvarchar(5))
;
INSERT INTO 廠商編碼
([PIN碼], [編碼], [廠牌])
VALUES
(123, 'A01', N'蘋果'),
(123, 'A03', N'蘋果'),
(456, 'B11', N'花碩'),
(456, 'B12', N'花碩'),
(789, 'C77', N'三興'),
(789, 'C78', N'三興'),
(789, 'C79', N'三興'),
(789, 'C80', N'三興')
;
這時候可以將多方『編碼』欄位拆出去獨立一個表格
,查詢時使用PIN碼做關聯
,如下圖跟腳本,就可以解決之前重複資料問題
CREATE TABLE 廠商 ([PIN碼] int, [廠牌] nvarchar(5));
INSERT INTO 廠商 ([PIN碼], [廠牌])
VALUES (123, N'蘋果'),(456, N'花碩'),(789, N'三興');
CREATE TABLE 編碼
([PIN碼] int, [編碼] varchar(3))
;
INSERT INTO 編碼
([PIN碼], [編碼])
VALUES (123, 'A01'),(123, 'A03'),(456, 'B11'),(456, 'B12'),(789, 'C77'),
(789, 'C78'),(789, 'C79'),(789, 'C80');
我的話通常會設計下面的方式,
呈現方式在資料撈出來的時候再處理,
如果要放同一格也可以考慮用逗號區隔,
不過一般來說我是不會這樣做.