我inheritance了一个数据库,这个数据库的构build思路是组合键比使用唯一的对象ID字段更理想,并且在构build数据库时, 永远不要将单个唯一ID用作主键。 因为我正在为这个数据库构build一个Rails前端,所以遇到困难使它符合Rails约定(虽然可以使用自定义视图和一些额外的gem来处理组合键)。 写这个特定模式devise背后的原因是,数据库如何以非高效的方式处理ID字段,以及何时build立索引,树的sorting是有缺陷的。 这个解释缺乏深度,我仍然试图围绕这个概念(我熟悉使用组合键,但不是百分之百的时间)的头脑。 任何人都可以提供意见或增加任何更深入的话题?
你将如何为你的Java应用程序实现一个插件系统? 是否可以有一个易于使用(开发人员)系统,实现以下function: 用户将他们的插件放到应用程序的一个子目录中 该插件可以提供configuration屏幕 如果你使用框架,是否与商业开发兼容?
几天前,Derik Whitaker发表了一篇文章 ,提到了我一直很好奇的一点: 业务逻辑是否应该存在于控制器中? 到目前为止,我所见过的所有ASP.NET MVC演示都将控制器中的存储库访问权限和业务逻辑放在一起。 有些甚至在那里也进行validation。 这导致相当大,臃肿的控制器。 这真的是使用MVC框架的方式吗? 看来,这只是最终会有很多重复的代码和逻辑分布在不同的控制器。
我需要创build一个调查答案存储在数据库中。 我只是想知道什么是最好的方式来实现这个数据库,特别是所需的表。 调查包含不同types的问题。 例如:评论的文本字段,多选题,以及可能包含多个答案的问题(即检查所有适用的问题)。 我提出了两个可能的解决scheme: 创build一个巨大的表,其中包含每个调查提交的答案。 每列将对应于调查的答案。 即SurveyID,Answer1,Answer2,Answer3 我认为这不是最好的方法,因为在这次调查中有很多问题,如果调查要改变,似乎不是很灵活。 另一件我想到的是创build一个问题表和答案表。 问题表将包含调查的所有问题。 答案表将包含来自调查的个别答案,每一行都链接到一个问题。 一个简单的例子: tblSurvey :SurveyID 问题 :QuestionID, SurveyID ,QuestionType,问题 tblAnswer :AnswerID, UserID , QuestionID ,答案 tblUser :UserID,UserName 我的问题是,可能有大量的答案,这将使答案表非常庞大。 在性能方面,我不太确定。 我会很感激任何想法和build议。
你知道如何deviseSQL解决scheme的好资源吗? 除了基本的语言语法,我正在寻找一些东西来帮助我理解: build立什么表格以及如何链接它们 如何devise不同的规模(小客户端APP到庞大的分布式网站) 如何编写有效/高效/优雅的SQL查询
我对twitter引导网格中的各种选项感到困惑,以及它们如何一起前进。 首先,你可以有一个普通的固定container ,或一个container-fluid 。 那么任何一个都可以包括一个普通的row ,或者一个stream体行的row-fluid 。 也就是说,你可以有一个固定的容器与一个stream体行,或一个容器stream体…固定行? 那么最重要的是,您可以包括“响应式”媒体查询,或不包括。 我对这些事情如何相互作用感到困惑。 但是让我们从一个明显的例子开始。 在示例页面上,有一个固定网格和一个stream体网格的例子 但是,在我的浏览器中,在该示例页面上 – 两个网格的行为都是相同的。 也许是因为示例页面使用可选的响应式媒体查询? 在这两个网格示例中,如果我逐渐缩小浏览器窗口,则网格元素不会逐渐变窄 – 一旦达到某个(响应)边界宽度,它们就会捕捉到更小的大小,并再次以更高的边界宽度捕捉。 但是普通的“固定”例子和“stream动”例子在这里performance得完全一样,那么差别究竟是什么?
我有一个7列的表,其中5个将是空的。 我会在int , text , date , boolean和money数据types上有一个空列。 这个表格将包含数百万行与许多空值。 恐怕空值将占据空间。 另外,你知道Postgres是否索引空值? 我想阻止它索引空值。
据我所知,C#的foreach迭代variables是不可变的。 这意味着我不能像这样修改迭代器: foreach (Position Location in Map) { //We want to fudge the position to hide the exact coordinates Location = Location + Random(); //Compiler Error Plot(Location); } 我不能直接修改迭代器variables,而是必须使用for循环 for (int i = 0; i < Map.Count; i++) { Position Location = Map[i]; Location = Location + Random(); Plot(Location); i = Location; } 来自C ++的背景,我认为foreach作为for循环的替代。 […]
我得到了一个大(> 100M行)Postgres表结构{整数,整数,整数,没有时区的时间戳}。 我预计一个行的大小为3 *整数+ 1 *时间戳= 3 * 4 + 1 * 8 = 20个字节。 实际上,行大小是pg_relation_size(tbl) / count(*) = 52个字节。 为什么? (不对表执行删除操作: pg_relation_size(tbl, 'fsm') 〜= 0)
我刚刚开始使用DDD,所以也许这是一个愚蠢的问题… 一个实体访问一个仓库(通过一些IRepository接口)在运行时获取一个值可以吗? 例如,我想强制执行一个属性的“默认”select: class Person { private Company _employer; public Company Employer { get { return _employer; } set { if(value != null) { _employer = value; } else { _employer = employerRepository.GetDefaultEmployer(); } } } … } 我的问题是,这样做是否违反了DDD的原则。 如果不是,我的下一个问题将是提供存储库使用的最佳方式是什么? 是否在Person对象创build时提供? 谢谢,P