127得票17回答
太多的数据库索引会有什么影响?

我正在处理一个相当大的Oracle数据库项目(尽管我的问题同样适用于其他数据库)。我们有一个Web界面,允许用户搜索几乎任何可能的字段组合。 为了使这些搜索变得更快,我们正在为我们相信用户通常会搜索的字段和字段组合添加索引。然而,由于我们不知道客户将如何使用此软件,很难确定要创建哪些索引。 ...

127得票8回答
何时使用视图而不是表格?

什么情况下应该使用视图而不是实际的表格?这样做可以带来什么好处? 总体而言,使用视图相比于表格的优势是什么?难道我不应该一开始就按照视图所需要的方式设计表格吗?

126得票15回答
在数据库中存储时间(hh:mm)的最佳方法

我想在数据库表中存储时间,但只需要存储小时和分钟。 我知道可以使用DATETIME并忽略日期的其他部分,但最好的方法是什么,可以避免存储比实际需要更多的信息?

126得票12回答
哪些列通常适合作为索引?

作为 "什么是索引,如何使用它们来优化数据库中的查询?" 的后续,我正在尝试了解索引,哪些列是良好的索引候选项?特别是对于 MS SQL 数据库? 经过一些谷歌搜索,我读到的所有内容都表明,通常递增且唯一的列会成为良好的索引(例如 MySQL 的自动递增),我理解这一点,但我正在使用 MS ...

126得票3回答
如何在一个表中根据ID列表删除记录?

如果我有一个ID列表(1、4、6、7),并且我想删除所有ID在该列表中的记录,那么应该怎么做呢?

126得票14回答
我应该在什么情况下使用一对一关系?

很抱歉提出这样的初学者问题,但是在数据库中使用一对一关系是否有真正的必要?您可以在一个表格内实现所有必要的字段。即使数据变得非常大,您也可以在SELECT语句中枚举所需的列名,而不是使用SELECT *。那么什么情况下需要进行这种分离呢?

125得票8回答
最佳的变更日志/审计数据库表设计?

我需要创建一个数据库表来存储不同的变更记录/审计(当某些东西被添加、删除、修改等)。我不需要存储特别详细的信息,所以我考虑使用以下内容: id(事件ID) 触发事件的用户 事件名称 事件描述 事件时间戳 我有什么遗漏的吗?显然,我可以不断改进设计,尽管我不打算让它变得复杂(创建其他事件...

125得票7回答
SQL数据库设计入门指南

你知道一个学习如何设计SQL解决方案的好来源吗? 除了基本的语法之外,我还想找一些能帮助我理解以下内容的资料: 应该建立哪些表以及如何将它们链接起来 如何为不同规模的系统进行设计(从小型客户端APP到大型分布式网站) 如何编写有效/高效/优雅的SQL查询

125得票9回答
为什么要使用多列作为主键(复合主键)

这个例子是取自w3schools。CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(...

125得票11回答
可空外键是一种不好的做法?

假设你有一个名为Orders的表格,其中有一个外键关联到一个Customer Id。现在,假设你想添加一个没有Customer Id的Order(这是否可行是另一个问题),你需要将外键设置为空值。这种做法是否不好,还是你更愿意使用Orders和Customers之间的链接表?虽然这种关系是一对...