其他数据库

在数据库设计中,1NF,2NF和3NF是什么?

我理解数据库规范化用于避免重复/冗余数据,并涉及为某些事情创建单独的表,但我不能确定我明白什么1NF,2NF和3NF。 解决方案 1NF是最基本的正常形式 - 每个表格中的单元格必须只包含一条信息,并且不能有重复的行。 2NF和3NF都是取决于主键。回想一下,主键可以由多个列组成。正如Chris在他的回答中所说的: 数据取决于键[1NF],整个键[2NF],除了键[3NF] C ..
发布时间:2017-03-13 20:42:51 其他数据库

数据库与平面文件

我工作的公司正在尝试将使用平面文件格式的产品切换为数据库格式。我们正在处理相当大的数据文件(例如:25GB /文件),并且它们会非常快速地更新。我们需要运行随机访问数据的查询,以及以连续的方式。我试图说服他们使用数据库的优势,但我的一些同事似乎不愿意这样做。所以我想知道你们是否可以帮助我在这里与一些原因或链接到为什么我们应该使用数据库,或至少澄清为什么平面文件更好(如果是)。 解决方案 ..
发布时间:2017-03-13 20:41:55 其他数据库

优化PostgreSQL进行快速测试

我从一个典型的Rails应用程序切换到PostgreSQL从SQLite。 问题是运行规范变慢与PG。 SQLite它花了〜34秒,在PG上〜76秒,这是超过2倍的慢。 现在我想应用一些技术到使规范的性能与SQLite 相同,没有修改代码(最好只是通过设置连接选项,这是不可能的)。 从我的头顶的几个明显的东西是: RAM磁盘(好的设置与RSpec在OSX上将很好看) ..
发布时间:2017-03-13 20:41:39 其他数据库

SQL最佳实践来处理默认排序顺序

很多我读过的SQL代码,似乎开发人员假设默认的排序顺序总是成立。例如,当构建一个HTML选择列表时,他们只需要 SELECT id,name FROM table 而不发出 ORDER BY 子句。 根据我自己的经验,如果没有给出 ORDER BY 子句,dbms总是使用FIFO命令数据,指数。但是,订单不保证。但是如果表没有改变,我从来没有见过dbms重新排序数据。 如果没有改变,你 ..
发布时间:2017-03-13 20:41:06 其他数据库

多语言数据库设计的最佳实践是什么?

创建多语言数据库的最佳方法是什么?为每个表创建本地化表是使设计和查询复杂,在其他情况下为每种语言添加列是简单但不动态,请帮助我了解什么是最好的选择企业应用程序 解决方案 我们做的是为每个多语言对象创建两个表。 第一个表只包含语言中性数据(主键等),第二个表每个语言包含一个记录,包含本地化数据和语言的ISO代码。 在某些情况下,我们添加一个DefaultLanguage字段,以便 ..
发布时间:2017-03-13 20:40:10 其他数据库

您对数据库项目使用源代码控制吗?

我觉得我的商店有一个洞,因为我们没有一个稳固的过程来对版本化我们的数据库模式更改。我们做了很多备份,所以我们或多或少被覆盖,但这是坏的做法,依靠你的最后一道防线这样。 令人惊讶的是,这似乎是一个常见的线程。我所说的许多商店都忽略了这个问题,因为他们的数据库不经常改变,他们基本上只是试着细致。 但是,我知道这个故事。这只是一个时间问题,事情排队只是错误,一些失踪。 有没有这方面的最 ..
发布时间:2017-03-13 20:39:58 其他数据库

使用Rails,我如何设置我的主键不是一个整数类型的列?

我使用Rails迁移来管理数据库模式,我创建了一个简单的表,其中我想使用非整数值作为主键(特别是字符串)。为了抽象出我的问题,让我们假设有一个表 employees ,其中雇员通过字母数字字符串来标识。 “134SNW”。 我已经尝试在迁移中创建表格,如下所示: create_table:employees,{:primary_key => :emp_id} do | t | t ..
发布时间:2017-03-13 20:39:22 其他数据库

SQL中的单引号和双引号有什么区别?

SQL中的单引号和双引号有什么区别? 解决方案 单引号用于表示开头和SQL中的字符串结束。双引号通常不在SQL中使用,但数据库与数据库不同。 坚持使用单引号。 这是主要的用途。对于列别名,您可以使用单引号,您希望在应用程序代码中引用的列名称不是数据库中实际调用该列的值。例如: PRODUCT.id 会比 product_id 更具可读性,因此您可以使用以下方法之一: SE ..
发布时间:2017-03-13 20:37:58 其他数据库

SQL中的TRUNCATE和DELETE之间有什么区别

我回答一个关于DROP和TRUNCATE之间的区别的问题,写了一个这个问题的答案,但我认为这是一个可惜不分享,所以我会发布自己的答案我自己的问题。是甚至伦理? 解决方案 编辑:如果您的答案是平台特定的,请注明。 / div> 这里有一个差异列表。我突出了Oracle的特定功能,希望社区可以添加其他供应商的具体差异。 常规概述 如果要快速删除表中的所有行,并且确实希望这样做 ..
发布时间:2017-03-13 20:37:32 其他数据库

Rails:include vs.:joins

这更像是一个“为什么这样做的工作方式”问题,而不是一个“我不知道如何做这个”问题... 因此,你知道你要使用的关联记录的福音是使用:include ,因为你会得到一个连接,避免一堆额外的查询: Post.all(:include =>:comments) 但是当你查看日志时,没有发生联接: Post Load(3.7ms)SELECT * FROM“post ..
发布时间:2017-03-13 20:35:48 其他数据库

识别和非识别关系有什么区别?

我没有能够完全掌握差异。 解决方案 标识关系是指子表中的行的存在取决于父表中的行。这可能令人困惑,因为现在常见的做法是为子表创建一个伪键,但不会将外键设置为子键的父键的父部分。正式地,“正确”的方式做到这一点是使外键的部分孩子的主键。 示例:A Person 有一个或多个电话号码。如果他们只有一个电话号码,我们可以将它存储在 Person 的列中。由于我们要支持多个电话号码,我们 ..
发布时间:2017-03-13 20:35:36 其他数据库

保持PostgreSQL从有时选择一个坏的查询计划

我有一个奇怪的问题PostgreSQL性能的查询,使用PostgreSQL 8.4.9。此查询是在3D体积内选择一组点,使用 LEFT OUTER JOIN 添加相关ID列,其中存在相关ID。 x 范围内的小更改可能导致PostgreSQL选择不同的查询计划,执行时间从0.01秒到50秒。这是相关查询: SELECT treenode.id AS id, treenode.parent_ ..

每个表都应该有一个主键吗?

我正在创建一个数据库表,并且没有为其分配逻辑主键。所以,我正在考虑离开它没有主键,但我正在砍伐一点点内疚。我是不是该? 每个表格是否都有主键? 编辑:好吧,好吧...我创建了主键!你现在高兴了? :) 解决方案 简短答案:是。 $ b b 长的答案: 您需要您的表格才能加入某些内容 你希望你的表被聚集,你需要某种主键。 如果你的表设计不需要一个主键,重新思考你的设 ..
发布时间:2017-03-13 20:33:41 其他数据库

数据库,表和列命名约定?

每当我设计一个数据库,我总是想知道是否有一个最好的方式来命名一个项目在我的数据库。我常常问自己以下问题: 表名是否为复数? 我应该在命名项目中使用任何案例吗? 在数据库中命名项目时,是否有建议的指南? 解决方案 我建议查看Microsoft的SQL Server示例数据库: http://codeplex.com/SqlServerSamples Adventur ..

要执行或不执行:将图像存储在数据库中

在web应用程序的上下文中,我的老老板总是说在数据库中引用了一个图像,而不是图像本身。我倾向于同意,在数据库中存储一个url与图像本身是一个好主意,但在我现在工作,我们在数据库中存储了很多图像。 我能想到的唯一原因可能是更安全?您不希望有人直接链接到网址?但是如果是这样,你总是可以有网站/服务器处理图像,像asp.net中的处理程序,以便用户需要验证来查看图像。我也认为性能会受到伤害从数据库 ..
发布时间:2017-03-13 20:31:45 其他数据库

rake db:migrate db:reset和db:schema:load之间的区别

rake db:migrate 和 rake db:reset 之间的区别在我的头脑中很清楚。我不明白的事情是 rake db:schema:load 与前两个不同。 为了确保我在同一页面上: rake db:migrate code> rake db:drop + rake db:create + rake db:migrate 如果我的理解出错,请帮助澄清。如果我的理解错了,请帮忙 ..
发布时间:2017-03-13 20:31:32 其他数据库

如何处理数据库中的用户的身份验证/授权?

目前,我正在使用一个web项目使用JSF 2.0,Tomcat 7和MongoDB。我有一个很大的问题,如何处理与数据库中的用户的会话管理和身份验证/授权。 我想要的结构如下:只有登录的用户可以创建事件,每个人都可以看到创建的事件。仅适用于已登录用户的 create.xhtml > events.xhtml - >所有人都可公开。 我计划的基本结构是: 检查页面是否需要登 ..
发布时间:2017-03-13 20:30:42 其他数据库

应用程序开发人员做出的数据库开发错误

应用程序开发人员常见的数据库开发错误是什么? 解决方案 未使用适当的索引 这是一个相对容易的,但仍然会发生。外键应该有索引。如果你在 WHERE 中使用一个字段,你应该(可能)有一个索引。此类索引应该经常涵盖基于您需要执行的查询的多个列。 2。不实施参照完整性 您的数据库可能会有所不同,但如果您的数据库支持参照完整性,意味着所有外键都保证指向一个实体存在 - 您应该使用它 ..
发布时间:2017-03-13 20:29:57 其他数据库

实体属性值数据库与严格关系模型电子商务

可以肯定地说, EAV / CR 数据库模型是坏。也就是说, 问题:应使用什么数据库模型,技术或模式来处理描述电子商务产品的属性的“类”在运行时改变? 在一个好的电子商务数据库中,您将存储各种选项(如电视分辨率,但下一个产品可能不是电视,没有“电视分辨率”)。如何存储它们,有效地搜索,并允许您的用户使用描述其产品的变量字段来设置产品类型?如果搜索引擎发现客户通常根据控制台深度搜索电视, ..