MySQL - 照片评论,投票,关键字,++,单表?

时间:2012-07-13 15:36:54

标签: php mysql sql xml

我想将我的照片管理系统从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 ??)

1 个答案:

答案 0 :(得分:3)

当你在将数据存储到单个列之前序列化数组时,你可以很容易地做到这一点。更好的是另一件事。除了性能问题之外,您还没有机会做出更复杂的事情,例如搜索单个属性。

为什么你坚持一张桌子?即使使用多个表,您也可以使用单个查询从多个表条目中检索单个条目。这为进一步扩展和用例提供了更大的灵活性。