【发布时间】:2010-06-10 06:55:20
【问题描述】:
我想编写更简洁、更高效的代码,我想知道针对以下问题的任何其他建议:
我有一个 mySQL 数据库,其中包含有关一组照片名称的数据。哦,说 100 张照片名称
表 1:(照片)具有以下字段: photo_id, photo_name
Ex 数据:
1 | sunshine.jpg
2 | cloudy.jpg
3 | rainy.jpg
4 | hazy.jpg
...
表 2:(类别)具有以下字段: category_id、category_name、category_order
Ex 数据:
1 | Summer Shots | 1,2,4
2 | Winter Shots | 2,3
3 | All Seasons | 1,2,3,4
...
通过逗号分隔值以这种方式存储每个条目的照片顺序是否有效?这是我以前见过的一种方法,但我想知道其他方法在运行时是否更快。
使用这种方式,我认为不可能对类别表和照片表进行直接INNER JOIN,以获得每个类别所有照片的单个匹配列表。
例如:夏季拍摄 -> sun.jpg、cloudy.jpg、hazy.jpg,因为它与 1、2、4 匹配
遍历所有类别,然后照片将有 O(n^2) 并且必须有更好/更快的方法。请教育我:)
【问题讨论】:
-
"Is it efficient to store the order of the photos in this manner per entry via comma delimited values?"不,这是一个糟糕的解决方案。"I wanted to know if something else is faster in run time."结构比速度梦想更重要。学习数据库基础知识,然后才开始关注从不影响它的事物的“速度” -
那么请发布一些内容,告诉我如何在结构上做得更好!
标签: mysql inner-join