无论我们是否喜欢,如果不是我们大多数开发人员,或者不是经常使用数据库,或者有一天可能需要使用数据库。 考虑到野外滥用和滥用的数量,以及每天出现的数据库相关问题的数量,公平地说,开发人员应该知道某些概念 – 即使他们不devise或使用数据库今天。 所以: 开发人员和其他软件专业人员应该了解的关于数据库的重要概念是什么? 回应指引: 保持你的名单短。 每个答案的一个概念是最好的。 具体 。 “数据build模”可能是一项重要技能 ,但究竟意味着什么呢? 解释你的理由。 为什么你的概念很重要? 不要只说“使用索引”。 不要陷入“最佳实践”。 说服你的听众去了解更多。 Upvote的答案你同意。 先阅读其他人的答案。 一个高排名的答案是比两个低排名的答案更有效的说法。 如果您有更多要添加,请添加评论或引用原件。 不要因为它不适用于你个人而降低某些东西。 我们都在不同的领域工作。 这里的目标是为数据库新手提供方向,以获得对数据库devise和数据库驱动开发的充分理解和全面的理解,而不是争夺最重要的头衔。
这两种模式似乎都是控制反转原理的实现。 也就是说,一个对象不应该知道如何构build它的依赖关系。 dependency injection(DI)似乎使用构造函数或setter来“注入”它的依赖关系。 使用构造函数注入的示例: //Foo Needs an IBar public class Foo { private IBar bar; public Foo(IBar bar) { this.bar = bar; } //… } 服务定位器似乎使用一个“容器”,它连接它的依赖关系,并给出它的条形码。 使用服务定位器的示例: //Foo Needs an IBar public class Foo { private IBar bar; public Foo() { this.bar = Container.Get<IBar>(); } //… } 因为我们的依赖关系本身就是对象,所以这些依赖关系具有依赖关系,依赖关系更多,依此类推。 因此,控制容器的倒置(或称DI容器)诞生了。 例如:温莎城堡,Ninject,结构图,spring等) 但IOC / DI容器看起来完全像服务定位器。 称之为DI容器是一个坏名字? […]
例程可以有参数,这不是新闻。 您可以根据自己的需要定义许多参数,但其中的许多参数会使您的日常难以理解和维护。 当然,你可以使用结构化variables作为解决方法:将所有这些variables放在一个结构体中,并将其传递给例程。 事实上,使用结构来简化参数列表是Steve McConnell在Code Complete中描述的技术之一。 但正如他所说: 细心的程序员避免将数据捆绑在逻辑上是必要的。 所以,如果你的例程有太多的参数,或者你使用一个结构来伪装一个大的参数列表,你可能做错了什么。 也就是说,你没有保持连接松散。 我的问题是, 我什么时候可以考虑参数列表太大? 我觉得超过5个参数太多了。 你怎么看?
我正在创build一个数据库表,我没有分配给它的逻辑主键。 所以,我正在考虑把它放在没有主键的地方,但是我对此感到有些愧疚。 我是不是该? 每张桌子都应该有一个主键? 编辑:好的,好的…我已经创build了主键! 你现在高兴了? 🙂
在Visual Basic中,DIM代表什么?
我一直在阅读微服务架构,我试图看到它和常规SOA(除了个别部署的服务之外)之间的区别。 任何人都可以告诉我的差异,也许是微服务架构的亲和骗局?
背景 我是CS的一年级学生,我兼职为爸爸做小生意。 我在现实世界的应用程序开发方面没有任何经验。 我已经在Python中编写脚本,在C中做了一些课程,但没有这样的。 我父亲有一个小型的培训业务,目前所有课程都通过外部networking应用程序进行安排,logging和跟进。 有一个导出/“报告”function,但它是非常通用的,我们需要特定的报告。 我们没有访问实际的数据库来运行查询。 我被要求build立一个自定义的报告系统。 我的想法是创build通用的CSV导出和导入(可能用Python)到每天晚上在办公室托pipe的MySQL数据库中,从那里我可以运行所需的特定查询。 我没有数据库方面的经验,但了解非常基础。 我已经读了一些关于数据库创build和正常forms。 我们可能会很快开始有国际客户,所以我希望数据库在发生这种情况时不会发生爆炸。 我们目前也有一些大公司作为客户,有不同的部门(如ACME母公司,ACME保健部门,ACME人体保健部门) 我提出的模式如下: 从客户angular度来看: 客户是主桌 客户与他们工作的部门有联系 部门可以分散在一个国家:伦敦的人力资源部门,斯旺西的市场部门等等。 部门与公司的分工有关 部门与母公司有联系 从课堂angular度看: 会议是主桌 每个课程都有一位老师 每个会话都有一个statusid。 例如0 – 完成,1 – 取消 会话被分组为任意大小的“包” 每个包都分配给一个客户 我在一张纸上“devise”(更像是潦草的)图案,试图使其保持归一化到第三种forms。 然后我把它插入到MySQL Workbench中,这对我来说非常有用: ( 点击这里查看全尺寸图片 ) 替代文字http://maian.org/img/schema.png 示例查询我将会运行 哪些还有信用的客户是不活跃的(未来没有上课的客户) 每个客户/部门/部门的出席率是多less(由每个会话中的状态ID来衡量) 一个月里老师有几堂课 举报率低的国旗客户 HR部门的定制报告,其分部的人员出席率 问题(S) 这是过度工程还是我正确的方式? 是否需要为大多数查询连接多个表导致性能下降? 我已经为客户添加了“lastsession”列,因为这可能是一个常见的查询。 这是一个好主意,还是应该保持数据库严格标准化? 谢谢你的时间
通过引导看,它看起来像他们支持折叠菜单栏的小屏幕。 页面上是否有类似的其他项目? 例如,我有一个导航药丸一起漂浮的权利。 在一个小屏幕上,这会导致问题。 我喜欢至less把它放到一个类似的点击显示更多的下拉列表。 这可能在现有的Bootstrap框架内?
所以这些年我终于停下脚步,决定正确地学习JavaScript。 语言devise中最令人头疼的元素之一就是inheritance的实现。 有了Ruby的经验,我很高兴看到closures和dynamicinput; 但是对于我的生活来说,无法弄清楚使用其他实例进行inheritance的对象实例有什么好处。
在关系数据库devise中,存在数据库规范化或简单规范化的概念,这是组织列(属性)和表(关系)以减less数据冗余和提高数据完整性的过程。 (如维基百科上所写)。 由于大多数文章都是技术性的,因此难以理解,所以我要求某人根据关于1NF,2NF,3NF,甚至3.5NF(Boyce-Codd)的含义以及某人可能如何思考的例子,写一个更容易理解的解释以便随时应用这些基本规则,因为在devise关系数据库时,它们似乎是要记住的最重要的事情。