Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将文件扩展名保存在单独的表中是否是一种好的做法?_Php_Mysql_Database Design - Fatal编程技术网

Php 将文件扩展名保存在单独的表中是否是一种好的做法?

Php 将文件扩展名保存在单独的表中是否是一种好的做法?,php,mysql,database-design,Php,Mysql,Database Design,我正在从事一个电子商务个人项目。我试图改变我的数据库结构,以满足标准技术 使用此产品的db设计后。这是我的表格结构: 因此,我想将product表更新为: 选项1 --------------------------------------------------------------------------- id productname productprice productdesc product_img product_imgExt groupeid 1 bag red

我正在从事一个电子商务个人项目。我试图改变我的数据库结构,以满足标准技术

使用此产品的db设计后。这是我的表格结构: 因此,我想将product表更新为: 选项1

---------------------------------------------------------------------------
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?

我认为是这样的!对我来说,阅读和逻辑性更好

编辑:

我会给每一列命名,如
product\u id
product\u name
groupe\u id
,表名如
PREFIX\u products
,,“更好”是一个非常主观的判断

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

因此,我的建议是建立一个包含产品信息的产品表,以及一个链接这些产品和图像的图像表。在images表中,我会尽可能简单地保存它——您存储的是一个路径,没有逻辑上的理由将后缀与路径分开。除非你的电子商务应用程序也在做一些巧妙的图像处理,而且文件类型很重要,否则我只会存储完整的路径——逻辑越少,需要编写的代码就越少,产生bug的机会就越少

因此:

产品

id  product_name product_price  product_desc   groupeid
1   bag red       2000          bag red cool   2
产品图片

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

映像路径正是硬盘上映像的路径。在PHP中,可以使用结果集中的该列来绘制
标记。如果您想知道图像是大还是小,请查看“大小指示器”列.

有什么理由单独保存吗?@anto.nishanth:就我而言..没有..文件扩展名应该在产品表中..因为一个产品只能有一个文件扩展名..所以我个人在考虑选项1…但我想从有更多经验的人那里得到一些意见..我明白你的意思..但是你的product_images让我有点困惑..您将小图像和大图像文件扩展名放在表中…在查询product_images表时,我如何确定它是图像小尺寸扩展名还是大尺寸扩展名。我已更新了答案-文件扩展名与确定图像是大还是小无关,文件名也应该是。最好将其显式地捕获为一个附加列。
product_id    size_indicator  image_path
1             S               \images\bag_red.jpg 
1             L               \images\bag_red_large.jpg