标签: database

可以使用外键的表列为NULL吗?

我有一个表有几个ID列到其他表.

我希望外键只有在我放入数据时才能强制完整性.如果我稍后进行更新以填充该列,那么它还应该检查约束.

(这可能是数据库服务器依赖的,我使用MySQL和InnoDB表类型)

我相信这是一个合理的期望,但如果我错了,请纠正我.

mysql sql database foreign-keys

208
推荐指数
4
解决办法
20万
查看次数

206
推荐指数
5
解决办法
15万
查看次数

每个开发人员应该了解数据库?

无论我们是否喜欢,很多人(如果不是大多数)开发人员要么经常使用数据库,要么可能有一天必须使用数据库.考虑到野外滥用和滥用的数量,以及每天出现的数据库相关问题的数量,可以说开发人员应该知道某些概念 - 即使他们没有设计或使用数据库今天.所以:



开发人员和其他软件专业人员应该了解的有关数据库的重要概念是什么?


回应指南:


保持清单简短.
每个答案的一个概念是最好的.

要具体.
"数据建模"可能是一项重要技能,但这恰恰意味着什么呢?

解释你的理由.
为什么你的概念很重要?不要只说"使用索引".不要陷入"最佳实践".说服您的观众了解更多信息.

Upvote您同意的答案.
首先阅读其他人的答案.一个排名较高的答案是比两个排名较低的答案更有效的陈述.如果您要添加更多内容,请添加评论或引用原始评论.

不要因为它不适用于你个人而投票.
我们都在不同的领域工作.这里的目标是为数据库新手提供指导,以获得对数据库设计和数据库驱动开发的有充分理解和全面理解,而不是争夺最重要的标题.

database language-agnostic database-design

205
推荐指数
18
解决办法
2万
查看次数

如何在SQL中随机选择行?

我正在使用MSSQL Server 2005.在我的数据库中,我有一个表"customerNames",它有两列"Id"和"Name"和大约.1,000个结果.

我正在创建一个功能,每次我必须随机挑选5个客户.任何人都可以告诉我如何创建一个查询,每次执行查询时将获得随机的5行(Id和Name)?

sql database random

203
推荐指数
9
解决办法
27万
查看次数

"其中1 = 1"声明

可能重复:
为什么有人在SQL子句中使用WHERE 1 = 1 AND <conditions>?

我看到有些人使用语句来查询MySQL数据库中的表,如下所示:

select * from car_table where 1=1 and value="TOYOTA"
Run Code Online (Sandbox Code Playgroud)

1=1这里的意思是什么?

mysql sql database

198
推荐指数
5
解决办法
6万
查看次数

优化PostgreSQL以进行快速测试

我正在从SQLite切换到PostgreSQL,用于典型的Rails应用程序.

问题是PG的运行规格变得缓慢.
在SQLite上花了大约34秒,在PG上它是~76秒,这慢了2倍.

所以现在我想应用一些技术来使规范的性能与SQLite相提并论,而不需要修改代码(理想情况下只需设置连接选项,这可能是不可能的).

从头到尾有几件显而易见的事情是:

  • RAM磁盘(在OSX上使用RSpec进行良好设置会很好看)
  • 未记录的表(它可以应用于整个数据库,所以我没有更改所有脚本吗?)

你可能已经明白我不关心可靠性和其余的(DB在这里只是一次性的东西).
我需要充分利用PG并尽可能快地完成它.

理想情况下,最佳答案将描述这样做的技巧,设置和这些技巧的弊端.

更新: fsync = off + full_page_writes = off仅将时间减少到~65秒(〜-16秒).良好的开端,但远远没有34的目标.

更新2:尝试使用RAM磁盘,但性能增益在误差范围内.所以似乎不值得.

更新3:* 我找到了最大的瓶颈,现在我的规格和SQLite一样快.

问题是进行截断的数据库清理.显然SQLite在那里太快了.

为了"修复"它,我在每次测试之前打开一个事务并在结束时回滚它.

约700个测试的一些数字.

  • 截断:SQLite - 34s,PG - 76s.
  • 交易:SQLite - 17s,PG - 18s.

SQLite的速度提高了2倍.PG的速度提高4倍.

sql database postgresql performance database-tuning

196
推荐指数
2
解决办法
5万
查看次数

从现有模式生成表关系图(SQL Server)

有没有办法生成一个图表,显示现有表及其与数据库连接的关系?

这适用于SQL Server 2008 Express Edition.

database sql-server diagram

195
推荐指数
4
解决办法
40万
查看次数

什么是比较两个SQL Server数据库(架构和数据)的最佳工具?

可能重复:
用于比较Sql Server表的免费工具

我想比较两个SQL Server数据库,包括模式(表结构)和表中的数据.什么是最好的工具呢?

sql database sql-server compare

194
推荐指数
7
解决办法
39万
查看次数

什么是哈希和范围主键?

我无法理解Range主键在这里 -

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key

它是如何工作的?

"散列属性上的无序散列索引和范围属性上的排序范围索引"是什么意思?

database hash primary-key nosql amazon-dynamodb

194
推荐指数
3
解决办法
9万
查看次数

什么时候不使用Cassandra?

最近有很多关于卡桑德拉的谈话.

Twitter,Digg,Facebook等都使用它.

什么时候有意义:

  • 用Cassandra,
  • 不要使用Cassandra,而且
  • 使用RDMS而不是Cassandra.

database rdbms cassandra nosql

191
推荐指数
9
解决办法
9万
查看次数