Tag: 规范化

如何规范直方图在MATLAB?

如何归一化直方图,使概率密度函数下的面积等于1?

就数据库而言,“正常化,正常化,性能化”是一个正确的口头禅?

规范化导致许多基本的和理想的特征,包括审美愉悦。 此外它在理论上也是“正确的”。 在这种情况下,非规范化是作为妥协来实现的,这是为了实现绩效的一种修正。 除了性能之外,还有什么原因可以使数据库非规范化?

为日历应用程序布置数据库模式

我想写一个日历应用程序。 这是真正反复出现的项目,在数据库模式的作品中引发了一场风波。 我会喜欢一些关于如何组织这个的input。 如果用户创build一个事件,并input它重复每个星期一,永远? 我怎么能把所有的数据存储在数据库中? 我无法创造无限的事件。 我只是简单地把一张桌子放在那里,有相关的信息,所以我可以计算出所有事件发生的地方? 如果是这样,每次用户查看日历的新部分,我将不得不计算它们。 如果他们翻阅了几个月,但他们有很多经常性的项目呢? 此外,模式需要处理,当用户点击一个项目,并说“编辑序列中的这一个”不是序列中的所有项目。 然后我把这个项目从序列中分离出来吗? 更新1 我还没有看过iCal。 为了清楚起见,我认为保存可以计算重复项目的信息,并且将不同于顺序的项目分开是一种很好的方式来存储它,以便能够传输它。 但是我认为,在一个应用程序中,这太慢了,要把date算到所有的地方。

何时去规范数据库devise

我知道在Stack Overflow上已经广泛地讨论了normalis(z)。 我读过很多以前的讨论。 我还有一些额外的问题。 我正在使用至less有100个表的遗留系统。 数据库有一些不规范的结构,包含各种不同数据的表和其他问题。 我已经被赋予了改善它的任务。 我不能只是重新开始,但需要修改现有的架构。 在过去,我一直试图devise规范化的数据库。 现在的问题。 一位高级开发人员build议,在某些情况下,我们无法正常化: 1)具有时间数据。 例如,创build一个链接到产品的发票。 如果客户一年后要求提供此发票的复印件,我们必须能够生成原件的完整副本。 如果产品价格,名称或说明已更新,该怎么办? 这位资深人士build议将价格和其他产品信息复制到发票表中。 我想也许我们应该有另一个表,如productPrice有一个date字段,所以我们可以跟踪价格的变化随着时间的推移。 我想在产品描述和名称上需要同样的东西? 看起来很复杂。 你怎么看? 2)数据库是一个会计系统。 我对会计不是很熟悉。 目前一些汇总数据被导出并存储在数据库中。 例如,一年的总销售额。 我的高级助理指出,会计师喜欢检查的东西是正确的,通过比较这个价值与实际上从发票计算的数据,让他们有信心,应用程序是否正常工作。 他说,目前例如我们可以判断是否有人错误地删除了去年的发票,因为总数不会一样。 他还指出,在飞行中计算这些总数可能相当慢。 当然我说过,数据不应该重复,应该在需要的时候一直计算。 我build议我们可以使用SQL Reporting Services或其他解决scheme来生成这些报告并caching它们。 无论如何,他不相信。 对此有何评论? 非常感谢 :) 干杯 标记 编辑 感谢您的优秀回应。 可惜我只能标记一个作为答案,因为这里有很多好的build议。

在SQL Server中实现多态关联的最佳方式是什么?

我有大量的实例,我需要在我的数据库中实现某种多态关联。 我总是浪费大量的时间重新思考所有的选项。 这是我能想到的3个。 我希望有一个SQL Server的最佳做法。 这是多列方法 这是没有外键的方法 这里是基本的方法

如何encryption散列JSON对象?

下面的问题比起来看起来要复杂得多。 假设我有一个任意的JSON对象,可以包含任何数量的数据,包括其他嵌套的JSON对象。 我想要的是JSON数据的encryption散列/摘要,而不考虑实际的JSON格式本身(例如:忽略JSON令牌之间的换行符和间距差异)。 最后一部分是一个需求,因为JSON将由许多不同平台上的各种(de)序列化器生成/读取。 我知道至less有一个用于Java的JSON库,它在反序列化过程中读取数据时完全消除了格式化。 因此,它将打破哈希。 上面的任意数据子句也使事情复杂化,因为它阻止了我按照给定的顺序接收已知的字段,并在hasing之前将它们连接起来(大致思考Java的非encryptionhashCode()方法是如何工作的)。 最后,将整个JSONstring散列为一个字节块(在反序列化之前)也是不可取的,因为在计算散列时应该忽略JSON中的字段。 我不确定这个问题有很好的解决方法,但是我欢迎任何方法或想法=)

非规范化以何种方式提高数据库性能?

我听到很多关于非规范化的内容,这些内容是为了提高某些应用的性能而做出的。 但我从来没有试图做任何有关的事情。 所以,我只是好奇,在规范化数据库中的哪个地方会使性能变差,换句话说,非规范化原则是什么? 如果我需要提高性能,我该如何使用这种技术?

解释为什么“只需添加另一列到数据库”对于非程序员来说是一个坏主意

我有销售人员和豆制品柜台谁试图出售定制给客户,这很好。 但是当一个复杂的变更请求发回给我一个大的估计时,他们会感到困惑。 他们经常回到我身边:“为什么你不能再添加一列?” 而另一个则是PER客户端的十几个自定义列。 到目前为止,我所能回来的是“我们试图保持数据库正常化”,这对他们来说毫无意义。 我告诉他们,我可以创build一个允许每个客户定义他们自己的一套自定义字段的表格系统,但是当然比“只添加几列”要花费更多的时间和金钱。 当然,他们也想吃蛋糕,也吃。 那我怎么能让他们明白?

什么是更好的数据库devise:更多的表或更多的列?

一位前同事坚持说,一个数据库比较多的表格,每个表格的列数less于每个表格的数据库比较less,而每个表格的列数都要多一些。 例如,而不是名称,地址,城市,州,邮编等列的客户表,您将有名称表,地址表,城市表等。 他认为这个devise更高效和灵活。 也许它更灵活,但我没有资格评论它的效率。 即使效率更高,我认为增加的复杂性可能会超过这些收益。 那么,对于列数越来越less的表,而对于列数越来越less的表,有没有什么好处呢?

如何在Python中规范化二维numpy数组less?

给定一个3倍的numpy数组 a = numpy.arange(0,27,3).reshape(3,3) # array([[ 0, 3, 6], # [ 9, 12, 15], # [18, 21, 24]]) 规范我想到的二维数组的行 row_sums = a.sum(axis=1) # array([ 9, 36, 63]) new_matrix = numpy.zeros((3,3)) for i, (row, row_sum) in enumerate(zip(a, row_sums)): new_matrix[i,:] = row / row_sum 一定有更好的办法,不是吗? 也许要澄清:通过规范我的意思是,每行的总和必须是1。 但是我认为这对大多数人来说是清楚的。