人们如何创建可用于许多产品的可重用数据库?

例如,如果我们有一个为学校设计的数据库......可以轻松修改它以提供给大学吗?

如何创建一个可以作为产品的数据库,只需一次编码即可为许多客户提供解决方案?

谢谢

有帮助吗?

解决方案

如本申请将需要一个相当复杂的数据模型以考虑的要求。多种不同的学校会有不同的要求。一所大学可以让您添加或删除课程,但小学通常不会。一所大学需要来安排课程进入房间,而小学需要根据可用空间和老师把学生分成等级和等级分割成教室。

您的设计需要考虑到所有的它有望解决,然后实现这些要求。更通用的,你让程序越难满足您的客户。这个问题说:“编写一次代码”。如果你想写,解决了每所学校的需要一个程序,它会需要数个功能;在某些情况下,一些学校会要求另一所学校相反的特征;例如有些学校需要强制执行每个主题或教室一个教师,而其他学校可能需要多个教师。你希望达到的更高的要求,更复杂的应用程序变得

在工业大应用往往要被写入,使得它们可以被延长;功能一组核心提供,但该应用程序是为了改变和定制的特定客户。这使得它更容易开发,因为你并不需要预见到每一个需要;其实你会不会需要预见到许多需求,直到你跟这些需求客户。但随着“定制”你不写代码只有一次。

最重要的步骤是拿出一个数据模型,其足够柔性的,以稍后延伸,但并不灵活,这是不可能开发。最难的部分通常是获得正确关系的基数。例如,你可以说一个类有一个老师。事实证明,然后当一个类需要两个老师,就必须重写大量的代码,并修复了大量的数据。这种变化是烦人和费时。然而,到底你可以随时修正错误,给予足够的时间程序员。

其他提示

通常情况下,人们这样做时,他们在同行业中多个客户端。所以,如果你是一个电子商务网站开发人员,那么你是打算横穿同样的产品,订单,订单细节一遍又一遍类型的表场景的运行。当发生这种情况,这是一件轻而易举的建立一个启动数据库。

有是这个没有简单的银弹。你只需要保持你的数据库设计一般就够了,但尽量避免过度概括为通常会导致恶梦维护和其他令人讨厌的陷阱。

随着经验的积累,你就会开始欣赏广义和专业之间的完美平衡。这是关键,以理解的,可重用的代码/数据库设计。

答案是找到一个 甜蜜点抽象.

步骤之一,跟一个非常广泛的潜在客户,了解他们的需求,他们目前正在使用的是什么,以及他们希望他们目前的产品(第)可以做。只要花费10倍,在此,你认为你现在需要的权利。画在纸上潜在的GUI和有你采访的人看图纸,并提出建议。如果可能的话,聘用行业一些人的业务分析师与此步骤的帮助。询问有关的法律要求。有些行业有大量的法律问题complicance和别人不一样。凡是以任何方式医学界有关的,你将需要研究和充分理解HIPPA要求,例如。

设计数据库结构和GUI然后得到一些真正的用户用它玩。根据他们所说的重构(用户有多少事情需要离开了聚会,他们不认为,直到面对一个实际的GUI这是惊人的)。

想想通过所有的潜在客户需要什么常见的,你可能需要定制 - 你的采访应该在这里指导你。决定如何处理定制。或者即使你将允许它。这可能对行业如何规范他们的做法是依赖很大。

如果这是框软件,经常设计包括具有可以被添加到由用户表单和报告自定义的字段的表。

在一个基于Web的解决方案,往往是每个用户想要自定义可能有自己的数据库所在的自定义信息存储(和对非定制的东西中央standrad数据库)和程序员基于来自客户端的请求的变化。如果采取这种途径,你第二次第二客户做定制simliar,考虑是否需要重构,使这个提供给大家一个软件的新功能。无需编写自定义的17出席报告,只有一个或两个字段变化时,客户端可以用更少的钱有一个标准的报告。

在网络模型中,你还可以创建一堆模块,并有客户挑选哪些添加到他们的定制解决方案。他们将支付基础上,他们选择模块的数量和复杂性。所以只想要三个标准报告的客户将支付低于希望所有27.当提出一个新的自定义客户端,客户支付的发展,如果该建议似乎并不immdeiately适用于他人,但模块是这样做的人可以买它。如果别人买的话,他们的开发成本支付,直到原单客户,谁问的变化可能会得到一部分钱。他们也可能需要的东西仍然作为一个自定义模块,并支付高得多的价格对这项工作。我们有一些客户谁也不希望在相同的位置,其他客户在相同的服务器上他们的数据。不用说,我们收取巨额溢价的做类似的东西。

定制是昂贵的并且可能会导致许多需要更多的程序员。考虑很强烈,你走定制路线之前。难道真的是一家销售软件解决方案的事情,但它不能很好地扩展。当你有10个通知客户,但是当你有几百它可能会失控的速度非常快,是不坏。这是一个很多困难打退堂鼓了定制的,一旦你提供它,而不是从一组标准以后添加定制。通常需要定制更多的是公司报告的组织。如果你可以创建一个报告界面,人们可以从中挑选他们想要的信息,并保存自己的自定义报表,你可能会处理大部分的在你的行业的定制需求,而不需要全面定制。

我可以得到最好的建议是建立到最小公分母....

于是....代码它作为对教育设施面向项目: - )

花时间思考你要存储的数据类型,摘要,以使其扩展,然后建立相应的数据库。我不知道你是否能得到完美的重用你的代码可能的方式,但你可以建立一个数据库结构(在这里你还需要修改个别组件),如果你提前计划是可重复使用的。

这取决于您的需求。例如,许多基于产品的业务数据库使用的格式包括:

  • 一张顾客桌
  • 订单表
  • 产品表等

在你的情况下你可能有

  • 一个班级表
  • 学生桌
  • 成绩表等

这种通用表格格式可以在许多应用程序中重复使用。

这一切都在设计中。在许多(如果不是大多数)情况下,数据库将需要定制的个别机构的一些水平;但通用数据库可以提供的功能的基本水平。它是可以设计的东西,一般足以满足许多基本需求;但问题是,设计的通用性往往导致高复杂性。例如,你可以设计你的数据库是数据驱动的一大套的潜在用户需求;但通常,它只是更好的架构定制该机构的个性化需求。

有涉及用于可重复使用的情况设计显著权衡;通常它们涉及的时间和复杂性;即,它更容易设计的东西是不可重用;通常,在使一般的设计和使用它invovled时间的附加量不值得的。

查找一般性和特殊性的正确的平衡在你的数据库设计,让你建立一个围绕它的应用程序解决了你的目标市场足够的问题,他们会都买了进去。

每个客户都会使用所有功能,还是您正在尝试构建一款适合所有产品的产品?我总是发现,花额外的时间来规划和修改数据库以适应特定的应用程序在未来会得到回报。使用简洁的数据库结构比尝试考虑每种可能性的数据库结构要容易得多。

如果我有一个类似的现有数据库或模板,我通常使用数据库建模工具,例如 修改它,然后使用生成 SQL 功能(在加载/保存下)创建实际数据库。

我最近学到的另一个为我节省了大量时间的技巧是将用于生成数据库的 SQL 保存为脚本。如果我想设置一个新数据库,我会对源代码进行任何编辑,然后加载页面。例如,如果我想生成一个新的客户表,我会加载 http://localhost/load.php?generate=customer.

希望能帮助到你!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top