我想将我的照片管理系统从XML转移到MySQL并扩展我当前系统的功能。
基本上,我在MySQL中很少有东西,在xml文件中很少。现在的情况如下:
“ news.xml ” - 单个文件:
我的网站上存储了所有新闻(新上传,投票和演出),xml的结构是:< / p>
<all_news>
<photos>
<image image_name="photo1.jpg" path="my_photos/" date="12.12.12" info="just Uploaded!" />
</photos>
<comments>
<image image_name="photo1.jpg" path="my_photos/" date="12.12.12" info="just Commented!" />
</comments>
<votes>
<image image_name="photo1.jpg" path="my_photos/" date="12.12.12" info="just Voted!" />
</votes>
</all_news>
“ photo1.xml ”,“ photo2.xml ”,“ photo3.xml ”... - 多个文件:
如果有人对我的照片发表评论,这些文件会动态创建。例如,如果有人评论我的照片,php脚本会自动创建格式为“ photo_name.xml ”的文件:
<comments>
<comment sender='John' text='nice photo!' who='user' date='22.12.12'/>
</comments>
“投票” - MySQL表:
存储了所有投票,以及表的结构:
id: "photo1.jpg"
vote: 5
uid: "IP voting person"
现在我想把所有这些东西合并到一个mySQL数据库表中,所以每次加载照片时 - 从单个DB表中提取这些照片信息(而不是同时加载几个xml和DB)...
所以我的问题是:
在这种情况下,哪种表结构最适合最简单的工作(拉数据,移动,删除,编辑,添加,排序......)?
我应该使用 unique id =“photo.jpg”和多维数组来保存单行文件的所有内容吗?例如:
uid: photo_name.jpg
path: my_photos/
isNewPhoto: array[true, array[info:"just uploaded!"][date:"12.12.12"]] (multi-dimensional array ??)
isNewComment: array[true, array[info:"just commented!"][date:"12.12.12"]] (multi-dimensional array ??)
isNewVote: array[true, array[info:"just Voted!"][date:"12.12.12"]] (multi-dimensional array ??)
votes: 1,5,3,2
votesIP: 123123123,123123123,123123123
comments: array[array[sender][comment][date][who]]] (multi-dimensional array ??)
答案 0 :(得分:3)
当你在将数据存储到单个列之前序列化数组时,你可以很容易地做到这一点。更好的是另一件事。除了性能问题之外,您还没有机会做出更复杂的事情,例如搜索单个属性。
为什么你坚持一张桌子?即使使用多个表,您也可以使用单个查询从多个表条目中检索单个条目。这为进一步扩展和用例提供了更大的灵活性。