我有两个名为“管理”和“服务”的 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/