亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

sqlserver主鍵設計的注意點

2024-08-31 00:57:12
字體:
來源:轉載
供稿:網友
在設計主鍵的時候往往需要考慮以下幾點:

1.無意義性:此處無意義是從用戶的角度來定義的。這種無意義在一定程度上也會減少數據庫的信息冗余。常常有人稱呼主鍵為內部標識,為什么會這樣稱呼,原因之一在于“內部”,所謂內部從某種程度上來說就是指表記錄,從大的范圍來說就是數據庫,如果你在設計的時候選擇了對用戶來說有意義的信息來作為主鍵,那么遲早會面對用戶提出對這塊信息進行更新的需求,那么你就違背了它應有的靜態。

2.靜態性:主鍵除了唯一地標識一條記錄及外鍵的關聯外,應不再考慮其他的意義,最理想的狀態就是在產生后不再變動,所以在主鍵值產生后應考慮不對他進行更新等操作。如果進行了更新操作那么至少說明這塊信息對于用戶來說是有一定的意義,那么你就違背了應有的無意義性。(對數據進行整合等操作時可能需要對主鍵進行處理,這樣做是為了保證數據庫的完整性——記錄的唯一,不在此考慮范圍之內。)
無意義性往往可以決定其靜態性。

3.簡短性:既包含主鍵組成字段數量要少,還包含主鍵中單個字段存儲類型簡短,一般采用整形;對于前者主要考慮的是外鍵關聯的因素;對于后者主要考慮的是性能。主鍵的簡短對表的關聯便捷性及檢索的性能有極大的幫助。

看看下面具有缺陷的“主生產計劃表”主鍵設計方案(MsSQL):

復制代碼 代碼如下:


--主表
CREATE TABLE PP_MPSHeader(
  BillNo VARCHAR(20) NOT NULL PRIMARY KEY,
  PlanDate DATETIME NOT NULL
)
--從表
CREATE TABLE PP_MPSBody(
  BillNo VARCHAR(20) NOT NULL,
  LineNumber SMALLINT NOT NULL,
  ProductID INT NOT NULL,
  ProductQty DECIMAL(18,2) NOT NULL,
PRIMARY KEY(BillNo,LineNumber)
)
--設置外鍵
ALTER TABLE PP_MPSBody
ADD CONSTRAINT FK_PP_MPSHeader_MPSBody FOREIGN KEY(BillNo) REFERENCES PP_MPSHeader(BillNo)


這是典型的主從表結構。主表記錄什么時候下達哪個單號的主計劃,從表記錄的是此計劃生產哪些產品各多少數量,通過BillNo進行關聯。當用戶在下達一份主生產計劃后,很可能會發現由于粗心大意輸錯了BillNo中計劃單號信息,那么在他修改單號時,代碼編寫者需要在代碼中控制從表的單號跟隨主表的單號進行變動,否則單據將在外鍵的約束下無法保存,如果沒有外鍵的約束,那么數據將失去其完整性。

如果按照上面的3個注意點,解決方案如下(MsSQL):

復制代碼 代碼如下:


--主表
CREATE TABLE PP_MPSHeader(
  BillId INT PRIMARY KEY,
  BillNo VARCHAR(20) NOT NULL,
  PlanDate DATETIME NOT NULL
)
--從表
CREATE TABLE PP_MPSBody(
  BillId INT PRIMARY KEY,
  LineNumber SMALLINT NOT NULL,
  ProductID INT NOT NULL,
  ProductQty DECIMAL(18,2) NOT NULL,
PRIMARY KEY(BillId,LineNumber)
)
--設置外鍵
ALTER TABLE PP_MPSBody
ADD CONSTRAINT FK_PP_MPSHeader_MPSBody FOREIGN KEY(BillId) REFERENCES PP_MPSHeader(BillId)


現在,主從表通過BillId進行關聯,當產生一份生產計劃時,生成一個BillId,對于用戶來說根本沒有意義,在隨后單據信息的改動中也不會出現上面的主從信息協調問題。同時從表的信息量小于上面的缺陷設計。因為原外鍵BillNo的長度從20個字節變成了現在的BillId4個字節,減少了信息的冗余。

這樣的例子其實很多,比如:
有的設計原材料表時,使用零部件圖號作為主鍵,那就意味著采購、生產、銷售等等相關表中都會出現零部件圖號的外鍵信息,當零部件圖號信息發生變動時,這些所有先關的信息都需要跟著變動,這種缺陷如果不從根本上解決,那么你可能需要寫個零部件圖號變動處理過程,來批量處理這些問題,在處理的過程中可能你還得考慮處理的順序問題……;
有的設計,使用身份證件號作為人員表的主鍵,但是身份證后來從15位變成了18位,這就意味著人員表中每個人的人員身份證信息都需要變動,如果你是某個社保機構此應用程序的設計人員,那么你就需要更新上百萬條記錄;那些所有由人員表通過身份證件號外聯出去的信息記錄將會以億計數,那么也許余生你就不需要做其他工作了。

所以選擇無意義的鍵值來作為主鍵的一部分,也是從長遠意義上來避免類似這種改動的發生。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情a在线| 2019日本中文字幕| 精品亚洲夜色av98在线观看| 欧美中文字幕在线视频| 性色av一区二区三区在线观看| 亚洲综合在线中文字幕| 久久久精品久久久| 亚洲人成自拍网站| 国产精品一区二区三区免费视频| 国产成人精品视频| 奇米一区二区三区四区久久| 亚洲精品福利视频| 国产午夜精品一区二区三区| 国产美女主播一区| 亚洲久久久久久久久久| 亚洲午夜小视频| 亚洲综合日韩中文字幕v在线| 久久亚洲精品中文字幕冲田杏梨| 亚洲女人天堂视频| 日韩av电影手机在线观看| 亚洲xxx视频| 欧美精品一区三区| 色999日韩欧美国产| 全球成人中文在线| 久久久精品美女| 国产午夜精品美女视频明星a级| 黑人巨大精品欧美一区二区一视频| 国产网站欧美日韩免费精品在线观看| 亚洲理论在线a中文字幕| 久久777国产线看观看精品| 亚洲春色另类小说| 成人精品一区二区三区电影免费| 久久久久久久999精品视频| 国产日韩在线亚洲字幕中文| 日韩福利视频在线观看| 久久精品人人爽| 久久久久久久91| www欧美日韩| 一区国产精品视频| 国产精品久久久久久久久影视| 日韩免费精品视频| 欧美在线视频免费观看| 2024亚洲男人天堂| 亚洲人午夜精品免费| 成人网在线免费观看| 亚洲欧美一区二区三区情侣bbw| 91亚洲午夜在线| 国产精品999999| 欧美—级高清免费播放| 最近2019中文字幕mv免费看| 欧美日韩亚洲精品一区二区三区| 国产日韩精品在线播放| 大胆人体色综合| 欧美激情一级精品国产| 一区二区三区黄色| 国产精品免费观看在线| 欧美孕妇与黑人孕交| 成人激情视频小说免费下载| 欧美激情视频播放| 亚洲国产美女精品久久久久∴| 国产日韩在线精品av| 九九热99久久久国产盗摄| 亚洲精品成人久久电影| 亚洲美女性生活视频| 伊人久久精品视频| 日韩在线观看电影| 久久视频免费在线播放| 在线观看国产精品日韩av| 欧美成aaa人片在线观看蜜臀| 日韩大片免费观看视频播放| 欧美国产日韩一区| 亚洲另类xxxx| 久久久伊人欧美| 性日韩欧美在线视频| 成人国产精品一区二区| 国产精品91久久久| 国产精品美腿一区在线看| 欧美成年人视频网站欧美| 国产自摸综合网| 国产精品亚洲综合天堂夜夜| 亚洲精品在线91| 91丝袜美腿美女视频网站| 成人黄色av网站| 伊人久久五月天| 国产不卡视频在线| 日韩精品免费综合视频在线播放| 国产欧美在线播放| 精品久久久久久国产91| 欧美另类精品xxxx孕妇| 色综合老司机第九色激情| 亚洲资源在线看| 国产精品日韩在线| 国产女精品视频网站免费| 久久偷看各类女兵18女厕嘘嘘| 92国产精品视频| 亚洲男人第一av网站| 国产精品久久久久久久9999| 国产在线视频2019最新视频| 一本色道久久综合狠狠躁篇怎么玩| 久久成人精品一区二区三区| 日韩电影中文字幕| 欧美性猛交xxxx| 亚洲精品一区在线观看香蕉| 日韩成人网免费视频| 国产日本欧美一区二区三区在线| 久久精品国产久精国产一老狼| 国产精品亚洲一区二区三区| 国产精品美女网站| 岛国av一区二区在线在线观看| 91高清视频免费| 成人在线激情视频| 久久亚洲精品小早川怜子66| 日韩成人中文字幕在线观看| 日韩一区视频在线| 在线亚洲午夜片av大片| 欧美激情精品久久久久久黑人| 97在线视频精品| 亚洲精品一区二区网址| 日韩av影片在线观看| 久久99热这里只有精品国产| 日本亚洲欧美三级| 搡老女人一区二区三区视频tv| 日韩av在线资源| 日韩激情片免费| 成人在线视频网| 国模视频一区二区三区| 欧美国产日韩一区二区在线观看| 亚洲第一av网站| 国产日产欧美a一级在线| 国产999精品视频| 久久久www成人免费精品| 成人国产精品一区| 9.1国产丝袜在线观看| 亚洲男人天堂手机在线| 国产精品久久久久久婷婷天堂| 一本色道久久88综合亚洲精品ⅰ| 欧美日韩成人在线播放| 精品国产乱码久久久久久天美| 亚洲精品视频播放| 亚洲免费视频在线观看| 亚洲午夜精品久久久久久性色| 最新69国产成人精品视频免费| 伊人成人开心激情综合网| 欧美最猛性xxxxx(亚洲精品)| 国产精品久久久久久久美男| 亚洲v日韩v综合v精品v| 韩国三级电影久久久久久| 97久久精品国产| 97在线看免费观看视频在线观看| 97国产在线视频| 欧美精品性视频| 亚洲成人免费在线视频| 精品久久久久久久久久| 中文字幕日韩高清| 超碰精品一区二区三区乱码| 人人做人人澡人人爽欧美| 久久亚洲综合国产精品99麻豆精品福利| 91精品国产高清久久久久久久久| 国产精品第一页在线| 精品在线欧美视频| 91精品国产色综合久久不卡98| 久久影视电视剧免费网站| 上原亚衣av一区二区三区| 亚洲人a成www在线影院|