-1

我正在设计我的第一个数据库并从头开始编写我的第一个 PHP 项目,我需要有人来审查数据库方案。

PHP 脚本的目的:当我在 Youtube、Myspace、Metacafe、Vimeo 等网站上发布宣传视频时,显示我网络中各个网站的流量统计。

我打算如何组织它:

  1. 一个站点可以有多个类别,例如“吉他课”、“唱歌课”、“舞蹈课”。
  2. 某些类别可以有子类别。就像“吉他课”可以拆分为“贝司”和“电音”
  3. 在一个类别中可以是一个宣传视频。在下图中,视频被命名为item
  4. 一项(宣传视频)只能在一个类别中创建
  5. 一个宣传视频可以提交到多个视频共享网站(Youtube、Vimeo 等)
  6. 一个宣传视频可以有几个不同的元数据,比如“标题”和“描述”

可能发生的场景:

  1. 也许有一天 Youtube 会删除我的一个宣传视频,在这种情况下,我会用可能不同的“标题”和“描述”重新上传它,但我想在统计中显示一些旧信息,比如删除前的观看次数。
  2. 我现在想不出别的了。。

编辑: 我添加了表 itemStats 在此处输入图像描述

EDIT2:我不确定我是否需要单独的 itemStats 表。我正在考虑与 itemMeta 一起加入它?

4

2 回答 2

1

您将主键链接到某些表上的主键(users:id 到 usersMeta:id),而不是主键到外键(sites:id 到 categories:siteid)。可能不会很好地工作。

于 2012-11-04T17:41:23.070 回答
0

我建议您将usersusersMeta合并到一个表中。usersMeta中只有 5 个独特且有用的字段。如果需要,您将需要使用连接来获取所有数据,我认为这是不必要的。请记住,规范化是删除冗余并确保所有表都具有最少字段的过程……但这需要付出代价。在大多数情况下,成本是性能。

此外,将用户表组合起来最多只能有 9 个字段。那仍然是我认为非常小的桌子。我以前有过包含 20-30 个字段的表格。就我而言,将这些数据分开是没有意义的,因为它是表所独有的,并且没有其他表或系统的一部分无论如何都不会使用该数据。

于 2012-11-04T23:24:11.440 回答