2014-02-19 29 views
-2

首先这是一个蹩脚的问题,所以就是这样!它让我总是想着“我的数据库设计够好吗?”这个问题。数据库应该在实际应用程序中拥有多少个实体?

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

我没有需求规格,因为我在家做一个小项目。但其规模越来越大。通常我不会制定需求规格说明,但我希望我应该做到这一点。

无论如何,假设你正在建设一个工业级的学生管理系统(SMS)的一所大学和你被赋予充分的权力建立一个SMS系统,是会像一个现成的包。你会为数据库添加多少个表?

感谢

回答

1

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

表的数据库数量取决于应用程序的域模型。没有对您的案例进行数据分析,回答您的问题根本是不可能的。

可能只有一个或两个数据库表的巨大应用程序,以及数百个小的应用程序。这个数字本身并不是衡量架构质量的好指标。

作为一个经验法则:为每个唯一可识别类型的信息(上低电平)你需要存储一个表,加上表交叉引用(许多一对多的关系) 。再有可能是管理表,用于记录表格等尽量学习Object Role Modeling(不一样的对象关系映射),自动创建一个基于你的商业模式的事实和约束数据库的方式。

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

+0

@atomblad,假设你这样做了,假设你的大学就在附近,每年招收3000名学生,它提供了Phd课程的文凭和150名学术人员。作为一个近似值,你会添加多少表格,不需要确切的值:)但我需要近似值 – user3296223

+0

那么,你仍然没有告诉我你将存储在数据库中的数据类型。应用程序的学生和教师**用户是**吗?或者他们正在进入数据库?在这种情况下,你需要储存哪些关于每个学生或教师的信息?只是简单的名字,年龄,每个人的电子邮件?在这种情况下,可能只是一张桌子。更多信息? –

+0

@atomblad这些是课程和课程的fucntions-student注册。根据通过的课程存储作业,考试和考试分数,这决定了学生从课程开始到结束都基本适合毕业生毕业。讲师的基本人力资源表将其分配给课程等。系统不处理学生网络登录等的图书馆借书。 – user3296223

1

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

“只有裸露的骨头业务实体,其是绝对需要的必须是 构成数据库实体。“

请注意,在所有术语中,数据库实体与数据库表不同。规范化的实体可以表示为一组表。

对于一个学生管理系统,这是一个企业级的,将有肯定超过10个业务实体。对我来说,这些最起码10将

  • 旅馆
  • 出席
  • 活动
  • 商标
  • 附表
  • 办公室
  • 评论
0

你的问题是都错了 - 这就像问如果这是最好的徒步旅行,在汽车或飞机上不知道你需要多远就搞定了。

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

回到我们的一些故事/用例,我可以粗略地告诉你实体。看看一些用例的例子 - 互联网上有很多用例。

相关问题