首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >各种介质的数据库布局和查询

各种介质的数据库布局和查询
EN

Stack Overflow用户
提问于 2013-02-27 09:45:01
回答 2查看 207关注 0票数 0

我在一个网站上工作,将允许用户提交视频,图像和另一个指南(包括文本和图像的多个步骤)。

在该网站的主页上,将有一个列表的最后5-10个项目左右,已上传。

最初,我计划为每个人准备一张桌子,比如“视频”、“图像”和“指南”。‘guide’表将有另一个表'steps‘,因此每个步骤都是它自己的带有'guide_id’的行。

在主页上,这些元素中的每一个都需要不同的代码来呈现(视频的iframe,图像的img标记,等等)。

有没有更好的方法来创建数据库呢?也许是一个包含所有不同内容的content item表,其中有一个“type”列?

如果不是,那么最好的方式是编写一个查询,从所有三个表中选择5-10个片段,并能够告诉结果的每一行是什么类型的内容,以便可以用适当的代码呈现它?

顺便说一句,我正在使用Laravel PHP框架,如果这会影响到答案的话。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-27 12:14:19

使用2张表。mediamedia_type

媒体表:

代码语言:javascript
复制
id       name     uploaded_at                  media_type_id
-------------------------------------------------------
1        aaa      2012-11-17 11:17:13            1
2        bbb      2012-11-17 11:20:11            2
3        ccc      2012-11-17 11:32:12            1
4        ddd      2012-11-17 11:45:10            3

media_type表:

代码语言:javascript
复制
id       name
----------------------
1        video
2        image
3        guide

这是模型的基本规范化数据库结构。您可以添加额外的列描述等。您的媒体表需要。此外,您还可以根据需要添加、删除媒体类型和更改对媒体表的引用。有了这个结构,您可以按如下方式查询。

最近上传的5个媒体:

代码语言:javascript
复制
SELECT id, name FROM media ORDER BY uploaded_at DESC LIMIT 5;

特定媒体类型的最后5个媒体:

代码语言:javascript
复制
SELECT media.id, media.name FROM media INNER JOIN media_type ON media.media_type_id = media_type.id 
  WHERE media_type.name = 'video' ORDER BY uploaded_at DESC LIMIT 5;
票数 0
EN

Stack Overflow用户

发布于 2013-02-27 09:50:28

将两者放入一个表中例如,将其命名为 media ,并添加类似于media类型的列

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15102759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档