首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Web 項目圖片存儲設計:獨立圖片表 + 圖片組 ID 關聯模式

     編輯:程式設計綜合問答

反模式:圖片字段塞進業務表

CREATE TABLE project (
    id INT PK,
    name VARCHAR(100),
    img1 VARCHAR(255), img2 VARCHAR(255), img3 VARCHAR(255) ... -- 擴展痛苦
);

規範設計:圖片庫表 + 關聯組

CREATE TABLE image_group (
    id BIGINT PK,
    biz_type VARCHAR(20),  -- 'project', 'article', 'product'
    biz_id BIGINT,         -- 業務主鍵
    UNIQUE(biz_type, biz_id)
);

CREATE TABLE image (
    id BIGINT PK,
    group_id BIGINT REFERENCES image_group(id),
    url VARCHAR(500),
    sort INT DEFAULT 0,
    desc VARCHAR(200)
);

業務流程

  1. 創建項目時同步創建 image_group 記錄(或首次上傳圖片時懶創建)。
  2. 上傳圖片 -> 寫入 image 表,group_id 關聯。
  3. 查詢項目圖片:SELECT * FROM image WHERE group_id = (SELECT id FROM image_group WHERE biz_type='project' AND biz_id=?)。

優勢

  • 圖片數量無上限,順序可調(sort)。
  • 多業務類型複用同一套存儲/CDN/審核邏輯。
  • 刪除項目時級聯刪除圖片組,或軟刪除保留歷史。|
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved