[英]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.