我很感谢网站数据库架构专家的建议。
我有一个分类广告列表网站的数据库设计,目前在MyISAM引擎中完成,所以没有关系,密钥等。
请查看当前设计的ER模型:
我需要知道我是否正在使用数据库设计......(电子邮件和密码字段在用户和广告表中都是多余的,因为第一个计划不需要用户注册,但该计划是最近发生了变化。所以,请忽略这一点,因为我将从广告表中删除这些字段)
预计该网站有可能在发布后的几个月内每天至少进行100,000次网页浏览。
请告知您对此设计的看法以及可以做得更好的事情。
另外请建议使用最好的Db引擎用于这样的网站(InnoDb或任何其他......)。
请提供有关此数据库的最佳存储引擎的建议,同时牢记性能,负载,Db完整性(如果需要,因为它目前在MyISAM引擎上设计,因此没有Db完整性)以及其他任何需要考虑的内容这样的网站。
我知道具体的数据库问题/问题只有在实际发生时才能处理,但至少我想在正确的方向上开始。
提前感谢您的帮助。
答案 0 :(得分:2)
为什么哦为什么要使用MyISAM?从我看到的,你不是在谈论一个高性能的网站,为什么要使用它?使用InnoDB。
数据完整性不是一个选项,所以如果你不是专家,你可能没有考虑在你的应用程序中为它实现逻辑,所以你应该考虑使用FK。
只看你的ER模型(因为你没有定义任何关系所以甚至不是ERM,因此没有R,它更像是EM)我们不能说那么多。我们需要一个故事,故事似乎很大。
每天100次点击是花生,在这种情况下会产生误导。什么是每秒最高的预期费率?维持这个水平还有多长时间?
此模型也缺少数据类型。即使是最小的分析,这些也不是可选的。
这样的事情通常需要数天时间来讨论和分析,我发现它在这方面有点过分,特别是考虑到信息的稀缺性。
答案 1 :(得分:2)
一目了然。 。
我们无法在图表中看到主键,唯一约束或类似内容。他们的缺席令人不安。
几乎每张桌子都有一个身份证号码。其中一些被称为“id”,而其他人则有更具描述性的名称。 更具描述性的是这两个想法中的佼佼者。
表中没有其他唯一约束的id号通常是错误的。 (通常,但并非总是如此。)例如,表“cats”可能需要对“catname”具有唯一约束。否则,id号将仅识别一行,而不是猫。 (这意味着你可以有两行或更多行具有相同的“catname”。)
表格adxfields和subcatxfields看起来像是一个等待机会的灾难。表'subcatxfields'看起来像某种EAV反模式。在你走这条路之前仔细看Bill Karwin's slideshow on database anti-patterns。 (EAV从幻灯片16开始。)
Subcat定价应该可以移到单独的表中。
有一个international standard for country codes。您最好使用标准国家/地区代码而不是您自己的ID号。使用人类可读的代码意味着您通常可以消除连接。 (通常,但并非总是如此。)
表“城市”没有足够的列来标识城市。 (美国有很多名为“华盛顿”的城市。)
这是足够的时间。 。