繁体   English   中英

将文件扩展名放在单独的表中是一种好习惯吗?

[英]Is it good practice to keep file extension in a seperate table?

我正在从事一个电子商务个人项目。 我正在尝试更改数据库的结构以符合标准技术。

使用此数据库设计产品后。 这是我的表结构:

product table
id  product_name product_price  product_desc product_img  groupeid
1   bag red       2000          bag red cool  bag_red.jpg   2

所以我想将产品表更新为: option1

---------------------------------------------------------------------------
id productname productprice  productdesc  product_img  product_imgExt groupeid
1  bag red        2000        bag red     bag_red          jpg            2
2  shoes yellow   1000        nice shoes  shoes_yellow     jpg            1
3  Tie yellow   1000          nice Tie    tie_yellow       png            1

选项2

---------------------------------------------------------------
img_ext table
id  img_extention
1     jpg
2     png
------------------------------------------------------------------
product table
id  product_name product_price  product_desc product_img  groupeid
1   bag red       2000          bag red cool  bag_red       2
2  Tie yellow   1000            nice Tie      tie_yellow    1    

------------------------------------------------------------------
product_img_table
product_id   img_ext_id
 1             2
 2             1
--------------------------------------------------------------

哪个选项更好:选项1或选项2?

“更好”是一个非常主观的判断。

但是,我建议您将对目录(产品表)的理解与如何显示目录的细节分开。 您存储的图像参考实际上是指向其他信息的链接,但是我敢打赌,随着项目的发展,每个产品都需要多个图像。

因此,我的建议是有一个包含您产品信息的产品表,以及一个将这些产品链接到图像的图像表。 在images表中,我将使其尽可能简单-您正在存储路径,并且没有逻辑上的理由将后缀与路径分开。 除非您的电子商务应用程序也进行了一些巧妙的图像处理,并且文件类型很重要,否则我只会存储完整路径-逻辑越少,编写的代码就越少,为错误创建的机会就越少。

所以:

产品展示

id  product_name product_price  product_desc   groupeid
1   bag red       2000          bag red cool   2

product_images

product_id    size_indicator  image_path
1             S               \images\bag_red.jpg 
1             L               \images\bag_red_large.jpg 

image_path就是那个-硬盘上图像的路径。 在您的PHP中,您将使用结果集中的该列绘制<img>标签。 如果您想知道图像是小还是大,请查看“ size_indicator”列。

我想一个! 对我来说,阅读和逻辑性更好。

编辑:

我将每个列命名为product_idproduct_namegroupe_id以及表名称如PREFIX_products

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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