两个图像表或一个用于存储默认图像?

时间:2013-03-14 23:50:39

标签: mysql sql

我目前维护一个数据库表,其中包含存储在文件系统中的图像的一些信息。此设置适用于我目前录制的数十万张照片。

对于用户默认图像,我维护一个包含照片的单独文件夹,但这已成为维护的噩梦。我应该创建第二个表来存储对表1中默认照片的引用,还是在表1中添加一个新的字段,我可以将其设置为指示默认照片?

我的表看起来像这样:

image_table
id  user_id  file_name 
1   6        xvy.jpeg  
2   6        abc.jpeg  
3   6        def.jpeg

建议的解决方案:

image_table
id  user_id  file_name default
1   6        xvy.jpeg  0
2   6        abc.jpeg  1
3   6        def.jpeg  0

在这个提议的解决方案中,似乎我需要进行两次SQL调用来重置默认值,然后再次调用以设置一个新的默认照片,如果用户更改它...

2 个答案:

答案 0 :(得分:1)

最好添加新字段而不是添加新表,如果第二个表与第一个表具有相同的列,那么如果你采用这种方法。

推理:如果我需要从两个表中获取值,我需要做一个繁琐的UNION。如果您有三个或更多表都具有相同类型的数据,并且我想同时使用所有这些数据怎么办?它变得更笨拙,更笨拙,更难以编码。

答案 1 :(得分:0)

我可以看到你正在使用一些SQL数据库,但是不要误会我为什么不尝试使用像MongoDB这样的NoSQL数据库。我知道创建一个字段作为标志或创建一个新的表似乎不是一个好的设计。