在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)/ 網(wǎng)上 設(shè)計(jì)物理層面的主鍵時(shí)所遵循的一些原則,具體是什么意思?

網(wǎng)上 設(shè)計(jì)物理層面的主鍵時(shí)所遵循的一些原則,具體是什么意思?

基于以上這兩個(gè)用途,下面給出了我在設(shè)計(jì)物理層面的主鍵時(shí)所遵循的一些原則:

  1. 主鍵應(yīng)當(dāng)是對(duì)用戶沒(méi)有意義的。如果用戶看到了一個(gè)表示多對(duì)多關(guān)系的連接表中的數(shù)據(jù),并抱怨它沒(méi)有什么用處,那就證明它的主鍵設(shè)計(jì)地很好。
  2. 主鍵應(yīng)該是單列的,以便提高連接和篩選操作的效率。

注:使用復(fù)合鍵的人通常有兩個(gè)理由為自己開(kāi)脫,而這兩個(gè)理由都是錯(cuò)誤的。其一是主鍵應(yīng)當(dāng)具有實(shí)際意義,然而,讓主鍵具有意義只不過(guò)是給人為地破壞數(shù)據(jù)庫(kù)提供了方便。其二是利用這種方法可以在描述多對(duì)多關(guān)系的連接表中使用兩個(gè)外部鍵來(lái)作為主鍵,我也反對(duì)這種做法,理由是:復(fù)合主鍵常常導(dǎo)致不良的外鍵,即當(dāng)連接表成為另一個(gè)從表的主表,而依據(jù)上面的第二種方法成為這個(gè)表主鍵的一部分,然,這個(gè)表又有可能再成為其它從表的主表,其主鍵又有可能成了其它從表主鍵的一部分,如此傳遞下去,越靠后的從表,其主鍵將會(huì)包含越多的列了。

第一點(diǎn)中,什么時(shí)候用戶會(huì)覺(jué)得表中數(shù)據(jù)沒(méi)有用???
比如一個(gè)成績(jī)表(學(xué)生id,課程id,成績(jī)),是讓用戶乍一看,覺(jué)得 單從 學(xué)生id和課程id看不出它們本身代表的是什么具體信息?還是說(shuō) 成績(jī)表不應(yīng)該設(shè)置成 這三個(gè)字段?

因?yàn)槿绻O(shè)置成這三個(gè)字段, 這個(gè)表的主鍵就是 學(xué)生id和課程id的聯(lián)合主鍵, 又會(huì)導(dǎo)致 注:中的問(wèn)題。

所以是 學(xué)生和課程表主鍵字段設(shè)計(jì)的錯(cuò)誤?還是什么意思?

添加:
剛看了一下,有些項(xiàng)目是直接將 所有的表,主鍵都設(shè)置為 id自增,然后其他的表引用該id為外鍵,這樣就不會(huì)造成上述注:中的問(wèn)題,
同時(shí),學(xué)生 成績(jī) 課程 三個(gè)表中,成績(jī)的字段就變成了id 學(xué)生表的id 課程表的id 成績(jī),這4個(gè)字段,
但是前面的 第一條依然沒(méi)有理解。

回答
編輯回答
笑忘初

第一點(diǎn):

成績(jī)表里的 (學(xué)生id,課程id,成績(jī)) 字段固然重要,原文中 “主鍵應(yīng)當(dāng)是對(duì)用戶沒(méi)有意義的”,你理解錯(cuò)了,你這成

績(jī)表的三個(gè)字段當(dāng)然都是重要有意義的,而我們需要一個(gè)字段來(lái)給這些數(shù)據(jù)編號(hào),便于區(qū)分查找到,而這個(gè)自然又是自

增長(zhǎng),系統(tǒng)控制的,無(wú)須我們來(lái)操作的,這時(shí)就需要主鍵。

2018年4月7日 02:18