数据库应该在真实世界的应用程序中拥有多少个实体?

时间:2014-02-19 13:59:04

标签: sql mysqli sql-server-2008-r2

首先这是一个蹩脚的问题,所以有这个!它让我一直怀疑问题是“我的数据库设计是否足够好?”

我被告知我的小项目表计数应该是10-15 有些人告诉我更多的桌子。

我没有要求规范,因为我在家做一个小项目。但它的规模越来越大。通常情况下,我没有制定要求规范,但我希望自己能够做到这一天。

无论如何,假设您正在为一所大学建立一个行业级的学生管理系统(SMS),并且您获得了全权,建立了一个类似于现成包装的SMS系统。您要为数据库添加多少个表?

感谢

3 个答案:

答案 0 :(得分:1)

这个问题有点像"How long is a piece of string?"

数据库中的表数取决于应用程序的域模型。如果不对您的案例进行数据分析,就无法回答您的问题。

可能有大量应用程序只有一个或两个数据库表,而小数据库表有数百个。这个数字本身并不是建筑质量的良好指标。

根据经验:您需要存储的每个唯一可识别信息类型(在较低级别)的一个表格,以及用于交叉引用的表格(对于许多人而言)多对多的关系)。然后可能有管理表,日志记录表等。尝试学习Object Role Modeling (与对象关系映射不同),了解基于事实自动创建数据库的方法和商业模式的限制。

在您的具体情况下,我认为您需要停止考虑最终会有多少个表。只需继续开发,当您遇到需要存储的新数据时,重构数据库解决方案,随时添加和修改表。如果你做得很好,那么你最终得到的数字是正确的

答案 1 :(得分:1)

虽然这不是回答这个问题的正确平台,因为这是一个非常基于意见的讨论,但仍然从我个人的经验来看,我倾向于遵循拇指规则 -

  

“只有绝对需要的裸机业务实体必须   构成数据库实体。“

请注意,在所有方面,数据库实体与数据库表不同。标准化实体可以表示为一组表。

对于企业级学生管理系统,肯定会有超过10个商业实体。对我来说,这些至少10个将是

  • 旅馆
  • 考勤
  • 活动
  • 标记
  • 附表
  • 办公室
  • 评论

答案 2 :(得分:0)

你的问题是错的 - 就像问你最好是步行,在汽车或飞机上旅行而不知道你需要走多远。

当您首先构建应用程序时,首先需要确定要构建的功能 - 通常从故事/用例开始。随着故事在广度/深度上的增长你会发现你有更多的实体,我在这里谈论3NF ......

带着一些故事/用例回到我们这里,我可以大致告诉你实体的数量。看一些用例示例 - 互联网上有很多用例。