繁体   English   中英

我如何标准化我的数据库设计?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM