在一个或多个数据库表设计的MySQL存储文件的详细信息和创建父和子类别的最佳途径

----- PHP和MySQL -----

我有两个简单的问题需要一些建议。

在我的网站,我会允许用户上传下列​​文件 - PDF /视频/照片。 由用户上传的所有文件都显示个人资料页上。 所有上传的文件可以按名称或标签和文件类型进行搜索。

什么是最好的MySQL数据库的设计?

  1. 存储所有文件,在一个表中,更容易显示用户A€™的个人资料页上,并通过类型和搜索等。
  2. 每种类型比如PDF,视频和照片<一个表 - 这可能是性能,但是对于搜索我唐娜€™吨知道好?

第二个问题是,我允许用户创建他们自己的菜单/个类别,有例如父母和子女类:

  • - >父类
    • >子类别
    • >子类别
  • - >父类
    • >子类别
    • >子类别

在那一刻我有两个数据库表,一个存储所有父类别为每个用户和第二家店子类与外键(ID),以父类。

要获得所有类别我第一次得到所有的父类别和使用foreach循环。 我所说的循环中的一个函数来获取类儿童由家长ID。

我想知道这是做这个,也可以在此查询MySQL的做不循环的最佳方法?

多谢你们 !!!

--------------解决方案-------------

关于第一个问题,这取决于你想存储有关文件的信息。

如果它是通用的所有类型,(名称,日期,文件类型,大小等),则一个单个的文件表由本身具有类型列很有意义。

但是,如果你要救那些与他们是什么样的文件的图像文件的视频文件,高度和宽度,帧速率,PDF文件的作者,例如做文件的属性,那么你会还需要一些辅助表来存储信息。 你不希望有一堆挂您的文件表仅适用于特定文件类型有用的每一列。

关于第二个问题,粗糙的SQL是根据你的父类表和您的孩子类别表之间的联接。

示例代码伪:

select p.userid, p.parentcategoryid,c.childcategoryid
from ParentCategory p INNER JOIN
ChildCategory c
on p.parentcategoryid=c.parentcategoryid
WHERE
p.userid = @UserID

分类:MySQL的 时间:2015-03-15 人气:3
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.921 (s). 10 q(s)