天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

深入討論SQL Server 表的主鍵問(wèn)題

  主鍵設(shè)計(jì)現(xiàn)狀和問(wèn)題

  關(guān)于數(shù)據(jù)庫(kù)表的主鍵設(shè)計(jì),一般而言,是根據(jù)業(yè)務(wù)需求情況,以業(yè)務(wù)邏輯為基礎(chǔ),形成主鍵。比如,銷售時(shí)要記錄銷售情況,一般需要兩個(gè)表,一個(gè)是銷售單的概要描述,記錄諸如銷售單號(hào)、總金額一類的情況,另外一個(gè)表記錄每種商品的數(shù)量和金額。對(duì)于第一個(gè)表(主表),通常我們以單據(jù)號(hào)為主鍵;對(duì)于商品銷售的明細(xì)表(從表),我們就需要將主表的單據(jù)號(hào)也放入到商品的明細(xì)表中,使其關(guān)聯(lián)起來(lái)形成主從關(guān)系。

  同時(shí)該單據(jù)號(hào)與商品的編碼一起,形成明細(xì)表的聯(lián)合主鍵。這只是一般情況,我們稍微將這個(gè)問(wèn)題延伸一下:假如在明細(xì)中,我們每種商品又可能以不同的價(jià)格方式銷售。有部分按折扣價(jià)格銷售,有部分按正常價(jià)格銷售。要記錄這些情況,那么我們就需要第三個(gè)表。而這第三個(gè)表的主鍵就需要第一個(gè)表的單據(jù)號(hào)以及第二個(gè)表的商品號(hào)再加上自身需要的信息一起構(gòu)成聯(lián)合主鍵;又或者其他情況,在第一個(gè)主表中,本身就是以聯(lián)合方式構(gòu)成聯(lián)合主鍵,那么也需要在從表中將主表的多個(gè)字段添加進(jìn)來(lái)聯(lián)合在一起形成自己的主鍵。
  數(shù)據(jù)冗余存儲(chǔ)

  隨著這種主從關(guān)系的延伸,數(shù)據(jù)庫(kù)中需要重復(fù)存儲(chǔ)的數(shù)據(jù)將變得越來(lái)越龐大。或者當(dāng)主表本身就是聯(lián)合主鍵時(shí),就必須在從表中將所有的字段重新存儲(chǔ)一次。
  SQL復(fù)雜度增加:

  當(dāng)存在多個(gè)字段的聯(lián)合主鍵時(shí),我們需要將主表的多個(gè)字段與子表的多個(gè)字段關(guān)聯(lián)以獲取滿足某些條件的所有詳細(xì)情況記錄。
  程序復(fù)雜度增加:

  可能需要傳遞多個(gè)參數(shù)。
  效率降低:

  數(shù)據(jù)庫(kù)系統(tǒng)需要判斷更多的條件,SQL語(yǔ)句長(zhǎng)度增加。同時(shí),聯(lián)合主鍵自動(dòng)生成聯(lián)合索引
  WEB分頁(yè)困難:

  由于是聯(lián)合主鍵方式(對(duì)于多數(shù)的子表),那么在WEB頁(yè)面上要進(jìn)行分頁(yè)處理時(shí),在自關(guān)聯(lián)時(shí),難于處理。
  解決方案
  從上面,我們已經(jīng)看到現(xiàn)有結(jié)構(gòu)存在著相當(dāng)多的弊端,主要是導(dǎo)致程序復(fù)雜、效率降低并且不利于分頁(yè)。
  為解決上述問(wèn)題,本文提出:當(dāng)應(yīng)用系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)表間存在主從關(guān)系時(shí),數(shù)據(jù)庫(kù)表額外增加一非業(yè)務(wù)字段作為主鍵,該字段為數(shù)值型;或者當(dāng)該表需要在應(yīng)用中進(jìn)行分頁(yè)查詢時(shí),也應(yīng)考慮如此設(shè)計(jì)。一般地,我們也可以幾乎為任何表增加一個(gè)與業(yè)務(wù)邏輯無(wú)關(guān)的字段作為該表的主鍵字段。
  由于該字段要作為表的主鍵,那么其首要條件是要保證在該表中要具有唯一性。同時(shí),結(jié)合SQL Server數(shù)據(jù)庫(kù)自身的特性,可以為其建立一個(gè)自增列:
  以下為引用的內(nèi)容:

    create TABLE T_PK_DEMO   (   U_ID  BIGINT NOT NULL IDENTITY(1,1), --唯一標(biāo)識(shí)記錄的ID  COL_OTHER VARchar(20) NOT NULL , --其他列  CONSTRAINT PK_T_PK_DEMO PRIMARY KEY NONCLUSTERED (U_ID)--定義為主鍵   )

it知識(shí)庫(kù)深入討論SQL Server 表的主鍵問(wèn)題,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 99爱在线精品视频网站 | 学生精品国产在线视频 | 芒果影院网站在线观看 | 国产精品96久久久久久AV不卡 | 亚洲国产女人aaa毛片在线 | 97 sese| 国产成人在线播放视频 | 草莓视频在线看免费高清观看 | 亚洲一区高清 | 国产亚洲精品在浅麻豆 | 免费成年人在线观看视频 | 国产精品久久久久无码AV色戒 | 1000部做羞羞事禁片免费视频网站 | 青青草原91| 亚洲黄色在线 | 日韩一区精品视频一区二区 | 熟女啪啪白浆嗷嗷叫 | 囯产少妇BBBBBB高潮喷水一 | 国产中文字幕乱码一区 | 日韩欧美一区二区三区在线视频 | 亚洲精品一区三区三区在线观看 | 久久深夜视频 | 国产在线精品亚洲视频在线 | 92看看福利午夜影院 | 久久久久伊人 | 亚洲综合香蕉在线视频 | 小s现场抛胸挤奶 | 蜜桃传媒在线播放 | 青柠电影高清在线观看 | 国产曰批试看免费视频播放免费 | 国产女人视频免费观看 | 国产亚洲欧美ai在线看片 | 无修肉动漫在线观看影片 | 国产伦精品一区二区三区精品 | 亚洲欧美成人在线 | 找老女人泻火对白自拍 | 色色男_免费 | 亚洲一区二区三不卡高清 | 欧美亚洲日韩一道免费观看 | 日本十八禁无遮拦啪啪漫画 | 日本精品卡一卡2卡3卡四卡三卡 |