[英]How I nomalize my this database design?
我有兩個名為“ management”和“ services”的mysql表。
“管理”表具有以下字段:
- id
- name
- designation
- description
- added_date
“服務”表具有以下字段:
- id
- name
- description
- added_date
“管理”表中的每個人都應該有一個圖像。 (其個人資料圖片),並在“服務”表中包含多個服務,每個服務應具有多個圖片。
所以我的問題是,如何將這些圖像保存到名為“ image_info”的表中,以及如何將它們彼此分開?
更新:這是我嘗試的方式:
# ------------------------
# -- Image Category Table
# ------------------------
CREATE TABLE IF NOT EXISTS image_category(
category_id INT(4) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(60) NOT NULL,
PRIMARY KEY (category_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
# ------------------------------------------
# -- Dumping data for table "image_category"
# ------------------------------------------
INSERT INTO image_category
(name)
VALUES
('service'),
('management');
# ------------------------
# Image Table
# ------------------------
CREATE TABLE IF NOT EXISTS image_info(
image_id INT(4) UNSIGNED NOT NULL AUTO_INCREMENT,
category_id INT(4) NOT NULL,
image VARCHAR(80) NOT NULL,
image_path VARCHAR(150) NOT NULL,
extention VARCHAR(10) NOT NULL,
image_size VARCHAR(10) NOT NULL,
dimension VARCHAR(15) NOT NULL,
mime_type VARCHAR(20) NOT NULL,
alt_text TEXT DEFAULT NULL,
added_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (image_id),
UNIQUE (image)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
希望有人可以幫助我。
謝謝。
您可以在management
表中添加一列名為profile_image
的列,如果未設置該列將為null
。 由於這是一對一的關系。 您不需要另一個表來分隔屬於一起的信息。
至於services
,則不同,因為它們可以為每個服務具有多個圖像。 為了解決這個問題,添加一個images
表,基本上像這樣
images table
------------
id
service_id
name
...
如果服務具有多個圖像,那么images
表中將有多個具有相同service_id
條目。
由於不會以任何方式發布服務映像和個人資料圖片,因此將它們存儲在同一張表中毫無意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.