您好,
我的原创设计:
create table product (
product_id
... ...
);
create table image (
image_id,
path,
product_id
... ...
);
但是,我的同事认为创建一个表就足够了
create table product (
product_id,
images_paths,
... ...
);
images_paths因此存储多个图像'路径。例如,01.jpg,02.jpg,03.jpg ......
哪种方式更好?
答案 0 :(得分:1)
单个表最有可能是更差的选项。原因是它代表非标准化数据。在单表设计中,您将在单个列中存储多个数据点。这将使得难以在查询中单独分开图像路径。
这两个表的方法是正确的,但这里的正确解决方案实际上可能是三表方法:
product (product_id, ...)
image (image_id, path, ...)
product_image (product_id, image_id)
product
表基本保持不变。 image
表已经过重构,每行只记录一个图像及其路径。模式的新功能是联结表product_image
,它跟踪哪些图像与哪些产品相关联。
这种方法可以最大限度地减少数据重复,并且通过适当的索引设置,连接应该可以很好地执行。