鍍金池/ 問(wèn)答/人工智能  數(shù)據(jù)庫(kù)/ 請(qǐng)問(wèn)現(xiàn)在主流的關(guān)于系統(tǒng)的附件的存儲(chǔ)信息表是如何設(shè)計(jì)的?是分散存儲(chǔ)還是集中存儲(chǔ)呢?

請(qǐng)問(wèn)現(xiàn)在主流的關(guān)于系統(tǒng)的附件的存儲(chǔ)信息表是如何設(shè)計(jì)的?是分散存儲(chǔ)還是集中存儲(chǔ)呢?

請(qǐng)問(wèn)大家在設(shè)計(jì)一個(gè)系統(tǒng)的附件存儲(chǔ)表的時(shí)候,是采用分散的將信息存儲(chǔ)到各個(gè)需要的表中呢?還是集中的將附件信息存儲(chǔ)到一個(gè)表中,然后在需要用到的表中進(jìn)行關(guān)聯(lián)呢?還是有其他的方案?

比如將用戶頭像的圖片信息存儲(chǔ)在用戶表的某個(gè)字段中,產(chǎn)品的圖片信息存儲(chǔ)到產(chǎn)品表的某個(gè)字段中,我將這種存儲(chǔ)方式稱(chēng)為分散存儲(chǔ)。

我以前待過(guò)的公司都是這種方式存儲(chǔ)的。

將所有用戶上傳的附件都存在一個(gè)表中,然后在查詢(xún)數(shù)據(jù)需要圖片信息的時(shí)候通過(guò)和其他表中id字段進(jìn)行關(guān)聯(lián)查詢(xún)獲取數(shù)據(jù),我將這種存儲(chǔ)方式稱(chēng)為集中存儲(chǔ)。

請(qǐng)大神說(shuō)說(shuō)這兩種方式的利弊。

如果有更好其他的方式,請(qǐng)各位大神不吝分享。

回答
編輯回答
愛(ài)是癌
  1. 分散存儲(chǔ)可以減少表連接,加快查詢(xún)速度
  2. 集中存儲(chǔ)的話可以做到查看所有上傳的圖片附件,一般做項(xiàng)目文檔管理用的比較多(也可以做附件版本),缺點(diǎn)是需要連表
2017年7月30日 01:31
編輯回答
若相惜

首先,不建議將表以BLOB的形式存儲(chǔ)附件內(nèi)容,會(huì)造成數(shù)據(jù)庫(kù)容量大增,難以管理和運(yùn)維;建議保存文件路徑即可。

建議集中存儲(chǔ):
1、性能方面會(huì)稍有損失,查詢(xún)附件的時(shí)候需要多查一次單據(jù)-附件關(guān)聯(lián)的表,但影響不大
2、有利于功能的抽象,查詢(xún)、保存附件的功能可以做成一個(gè)通用的功能,對(duì)功能開(kāi)發(fā)比較有利。

2018年3月24日 08:28