第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如下背景:Java Web項(xiàng)目設(shè)計(jì)數(shù)據(jù)庫時(shí)是否需要在表中加備用字段?

如下背景:Java Web項(xiàng)目設(shè)計(jì)數(shù)據(jù)庫時(shí)是否需要在表中加備用字段?

搖曳的薔薇 2023-04-15 13:09:17
背景:最近在做一個(gè)Java Web項(xiàng)目,SSH框架,MySQL數(shù)據(jù)庫。項(xiàng)目的數(shù)據(jù)庫沒有設(shè)備用字段。在開發(fā)過程中,因數(shù)據(jù)庫設(shè)計(jì)者未考慮周到,業(yè)務(wù)實(shí)體有一個(gè)屬性沒有對應(yīng)的字段,因此需要在數(shù)據(jù)庫表加一個(gè)字段。又由于此字段要求不可為空,并且在開發(fā)階段,測試數(shù)據(jù)不多。于是我在drop掉了原來的表,增加了一個(gè)字段再重新建了一張表。按照通常的做法,設(shè)計(jì)數(shù)據(jù)庫都會在后面加幾個(gè)類型為varchar的預(yù)留字段,也沒有具體思考過為什么要這么做,這么做的好處是什么。在遇到這個(gè)問題之后引起我思考:預(yù)留字段這個(gè)通用的做法是否能減少開發(fā)階段由于考慮不周到,或后續(xù)維護(hù)階段因?yàn)樾枨笞兏蛘邤U(kuò)展改造而需要增加字段而造成的麻煩。就此與同事進(jìn)行了討論,大家意見不一,以下是正反方的一些意見和看法。希望大家能根據(jù)以往的項(xiàng)目經(jīng)驗(yàn)和設(shè)計(jì)原則給出一些解答,怎樣的設(shè)計(jì)能確保數(shù)據(jù)庫健壯,可擴(kuò)展。反方觀點(diǎn):不需要原因:數(shù)據(jù)庫設(shè)置備用字段無法在字段名上體現(xiàn)其意義,不規(guī)范,后期維護(hù)麻煩。在需要增加字段的時(shí)候如果直接add column,也不會有太大工作,但能保證數(shù)據(jù)庫字段的規(guī)范。雖然在啟用備用字段的時(shí)候可以文檔說明,但在POJO上對應(yīng)其屬性為attribute1,attribute2等,代碼的可讀性不強(qiáng)。而且,預(yù)留字段全部統(tǒng)一varchar,也不太合適。另外有人說加了預(yù)留字段會影響性能(這點(diǎn)已經(jīng)確定不會影響性能,因?yàn)槠鋵?shí)預(yù)留字段未啟用前在數(shù)據(jù)庫里面都是一個(gè)null值)。我的觀點(diǎn):需要原因:持久層的設(shè)計(jì),數(shù)據(jù)庫表結(jié)構(gòu)不應(yīng)輕易變更。因此應(yīng)設(shè)置備用字段。啟用備用字段后,只修改代碼,在代碼中增加注釋和并文檔說明即可,不需要改動數(shù)據(jù)庫結(jié)構(gòu),更方便。我對反方的反駁:就這個(gè)問題我咨詢了一個(gè)做DBA的朋友,據(jù)他所說:如果沒有備用字段,如果后期要加字段,用add column的方法會改變原先的數(shù)據(jù)庫存儲結(jié)構(gòu),造成數(shù)據(jù)移動,移動需要時(shí)間,而且會移動到其他數(shù)據(jù)塊。(很專業(yè)的數(shù)據(jù)庫知識,不是很懂)總之意思是add column會影響數(shù)據(jù)庫性能,造成一些不可預(yù)知的錯誤。一個(gè)疑問:假如項(xiàng)目已經(jīng)在實(shí)施階段,數(shù)據(jù)庫里存儲的已經(jīng)是一些生產(chǎn)數(shù)據(jù),不可輕易刪除,但需要加的字段是不可為空的字段,在有備用字段和沒有備用字段這兩種情況下,分別應(yīng)該怎么處理那些前期已有的數(shù)據(jù)。
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

建議添加,對于反方提到的問題,只要代碼和文檔規(guī)范是可以避免這樣的問題的,即使遇到這樣的問題,也比修改表名帶來的危險(xiǎn)要小,除了要修改代碼、存儲過程、配置文件中的表名,還要考慮數(shù)據(jù)的遷移等問題,如此多的改動難免會出現(xiàn)這樣那樣的問題,因此保證系統(tǒng)的穩(wěn)定性來看,攜帶幾個(gè)擴(kuò)展字段為了后續(xù)使用也無妨。

查看完整回答
反對 回復(fù) 2023-04-18
?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

當(dāng)需要增加相關(guān)的信息的時(shí)候,就要具體情況具體分析:

  1. 如果數(shù)量很少,而且信息的性質(zhì)與原表密切相關(guān),那么就可以直接在原表上增加字段,并將相關(guān)的數(shù)據(jù)更新進(jìn)去;

  2. 如果數(shù)量較大,或者并非是原表對象至關(guān)重要的屬性,那么就可以新增一個(gè)表,然后通過鍵值連接起來;

  3. 對于表的數(shù)據(jù)的存儲位置所導(dǎo)致的性能問題,我們可以通過在特定時(shí)間對數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行重組來解決,而這項(xiàng)工作對于長期運(yùn)行的數(shù)據(jù)庫來說,也是需要定期進(jìn)行的。


查看完整回答
反對 回復(fù) 2023-04-18
  • 2 回答
  • 0 關(guān)注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號