gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 22:17:58 25 4
gpt4 key购买 nike

我有两个名为“管理”和“服务”的 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。因为这是一对一的关系。您不需要另一个表来分隔属于一起的信息。

至于服务,情况有所不同,因为每个服务可以有多个图像。为了处理这个问题,添加一个基本上像这样的images

images table
------------
id
service_id
name
...

如果服务有多个图像,那么 images 表中将有多个具有相同 service_id 的条目。

由于服务图像和个人资料图片没有任何关联,因此将它们存储在同一个表中是没有意义的。

关于mysql - 我如何标准化我的数据库设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31030053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com