1

我会感谢专家对网站数据库架构的建议。

我有一个分类列表网站的数据库设计,目前在 MyISAM 引擎中完成,因此没有关系、键等。

请查看当前设计的 ER 模型:

在此处输入图像描述

在此处输入图像描述

我需要知道我是否在 DB 设计的正确轨道上......(电子邮件和密码字段在用户和广告表中都是多余的,因为第一个计划不需要用户注册,但该计划最近发生了变化。所以,请忽略这一点,因为我将从 Ads 表中删除这些字段)

预计该网站在发布后的几个月内每天至少有 100,000 次页面浏览量。

请就您对此设计的看法以及可以做得更好的地方提出建议。

还请就用于此类站点的最佳 Db 引擎提供建议(InnoDb 或任何其他...)。

请就该数据库的最佳存储引擎提出建议,同时牢记性能、负载、数据库完整性(如果需要,因为它目前是在 MyISAM 引擎上设计的,因此没有数据库完整性)以及此类站点需要考虑的任何其他内容.

我知道特定的数据库问题/问题只有在现实中发生时才能处理,但至少我想朝着正确的方向开始。

提前感谢您的所有帮助。

4

2 回答 2

2
  1. 为什么哦,你为什么要使用 MyISAM?据我所知,您不是在谈论高性能网站,为什么要使用它???使用 InnoDB。

  2. 数据完整性不是一个选项,因此如果您不是专家,您可能不会考虑在应用程序中实现逻辑,因此您应该真正考虑使用 FK。

  3. 只看你的 ER 模型(它甚至不是 ERM,因为你没有定义关系,所以没有 R,它更像是一个 EM)我们不能说那么多。我们需要一个故事,而这个故事似乎很大。

  4. 每天 100k 的点击量是微不足道的,在这种情况下会产生误导。每秒的最高预期速率是多少?这个水平能维持多久?

  5. 该模型也缺少数据类型。即使是最小的分析,这些也不是可选的。

  6. 像这样的事情通常需要几天的时间来讨论和分析,我觉得这里有点过分了,特别是考虑到信息的稀缺性。

于 2011-09-04T18:17:37.027 回答
2

乍看上去 。. .

我们在您的图表中看不到主键、唯一约束或类似的东西。他们的缺席令人不安。

几乎每个表都有一个 id 号。其中有几个只是称为“id”,而其他有一个更具描述性的名称。这两个想法中的描述性越强越好。

没有其他唯一约束的表中的 id 号通常是错误的。(通常,但并非总是如此。)例如,表“cats”可能需要对“catname”的唯一约束。否则,id 号将只标识一行,而不是一只猫。(这意味着您可以有两行或多行具有相同的“猫名”。)

表格 adxfields 和 subcatxfields 看起来像是等待机会的灾难。表 'subcatxfields' 看起来像是某种 EAV 反模式。在您走这条路之前,请仔细查看Bill Karwin 关于数据库反模式的幻灯片。(EAV 从幻灯片 16 开始。)

Subcat 定价可能应该移到单独的表中。

国家代码有一个国际标准。你最好使用标准的国家代码而不是你自己的身份证号码。使用人类可读的代码意味着您通常可以消除连接。(通常,但并非总是如此。)

表“城市”没有足够的列来标识一个城市。(美国有很多城市叫“华盛顿”。)

时间够了。. .

于 2011-09-04T18:26:09.260 回答