Questions tagged «database-design»

数据库的概念模式和/或逻辑模型和/或物理设置的开发。

6
在这种情况下最佳的数据库设计是什么?
我正在为我的公司构建业务应用程序,并努力为特定情况选择最合适的数据库设计。假设我有以下实体: 批准书 ID 状态 ... 批准评论 ID ApprovalId 评论 订购 ID ... 发票 ID ... 显然,可能存在多种类型的批准和多个需要批准的对象。设计表时,以下选项中最合适的是: 选项1 有一个带有空外键的批准表: 批准书 编号PK 状态 OrderId FK NULL InvoiceId FK NULL 批准意见 编号PK ApprovalId FK 评论 在这种情况下,我必须为每个需要批准的对象添加一列 选项2 有一个带有公共字段的父审批表,以及每个需要审批的对象的子表: 批准书 编号PK 状态 批准意见 编号PK ApprovalId FK 评论 订单批准 ApprovalId PK FK OrderId FK 发票审批 …

1
堆栈溢出可以在SQL Server Web Edition上运行吗?
我正在开始一项新的网络冒险,可能需要扩展到大量用户。 我对SQL Server Web版的SPLA许可充满信心,但想知道我是否需要考虑升级到Standard,Enterprise或DataCenter(肯定不会是这个)。 我知道一个人不应该在扩展之前就考虑扩展,但这会影响站点的架构和业务计划。 我知道处理器限制是每个物理处理器而不是线程,因此我不必担心。但是,某些镜像和备份功能会让我担心。SO是否依赖这些功能? tl; dr: 像Stack Overflow这样的网站可以在SQL Server Web上运行吗?维护和高可用性的哪些方面将无法实现?

2
多语言用户界面背后的数据库
这个问题是一个比在这些旧问题中已经解决过的问题稍微复杂的问题,所有这些都是重复的: 有关多语言数据库结构的建议(2011年6月) 保留多语言数据的最佳数据库结构是什么?(2010年2月) 多语言数据库设计的最佳实践是什么?(2009年5月) 多语言数据库的架构(2008年11月) 支持多语言用户界面的最流行的数据库方案似乎是将所有语言的所有翻译文本都放在一个表中,该表具有3列:文本ID,语言代码和文本本身。文本ID和语言代码共同构成主键。 一切都很好,但是现在考虑一下复杂性:假设文本需要可搜索。例如,假设这是一个多语言的电子商店。这意味着对于数据库中输入的每个商品类别,店主将使用N种支持的每种语言输入商品类别的名称,然后购物者将能够通过名称搜索商品类别,用他们自己的语言。 有一个问题:排序规则。 不同的语言具有不同的排序规则序列,而适用于一种语言的排序规则不适用于另一种语言。因此,如果所有语言的所有文本都在同一列上,它们将具有什么排序顺序?我们将如何查询数据库以查找特定文本的文本ID?尽管在网络产品中,搜索的准确性和性能可能并不十分重要,但出于讨论的目的,让我们假设它们确实很重要。 大多数数据库管理员在“数据库的排序规则”的意义上熟悉排序规则的概念。幸运的是,这只是默认排序规则,如果不存在其他排序规则信息,则使用该默认排序规则,但是也存在其他可以指定排序规则的地方: SQL CREATE INDEX命令支持排序规则规范。(尽管有传言说Microsoft SQL Server不支持它;有人知道吗?) SQL SELECT语句也支持排序规则,但是在这种情况下,排序规则规范可以作为一个函数使用,从而导致索引扫描而不是索引查找,如果我们想要性能,这可能是不允许的。(再说一次,如果那是我们能拥有的最好的,那总比没有好。) 我还听说,在Microsoft SQL Server上,您可以具有非持久的计算列,可以在其上指定排序规则并创建过滤索引,尽管我以前从未听说过,如果它只是Microsoft-SQL-Server-only功能,那么无论它多么酷和经过深思熟虑,我都不想使用它。 因此,鉴于所有这些,如果目标是可更新且可搜索的多语言数据库,那么我们将如何构建数据库以及如何执行查询? 这个问题的灵感来自于此处的讨论:如果某些数据少于4000个字符,nvarchar(max)如何将数据存储在数据库中会更快?

3
“逻辑差异”的定义?
我目前正在阅读CJ Date撰写的“ SQL和关系理论”。尽管我在书中走的很远,但我有一些基本问题。我想知道“逻辑差异”一词的含义,这本书确实尝试通过示例来解释该术语,但并没有真正解释它的含义(或者也许我理解错了??) 这是本书的一小部分: 我已经说过,关系和关系图片之间存在逻辑上的区别。逻辑差异的概念源自维特根斯坦的格言: 所有逻辑上的差异都是很大的差异。 我知道直觉上的逻辑差异是什么,我知道关系和关系图片之间的差异。我想要的是“逻辑差异”概念的形式化定义,因此我对它的含义有一个很好的了解。

1
PostgreSQL中的模式概念
我无法理解PostgreSQL中模式的概念和用法。我不知道它如何影响我的数据库设计。我为什么要使用它? 如果我决定现在不考虑它们,以后再担心它们,将来会对我产生影响吗? 一个例子的解释会很好。

4
这是设计数据库的标准方法吗?
我最近了解了如何在工作中的数据库中定义关系,并且想知道这是否是标准做法。 假设我们有两个流程:流程A和流程B。流程B取决于流程A的结果,因此需要在流程B运行和流程A运行之间定义一种关系。关系的定义方式如下: TableProcessA: Id 和 TableProcessB: Id ProcessAId 现在,到目前为止,事情对我来说还是有意义的,但是后来事情对我和我对表格设计的理解变得有些奇怪。每当在TableProcessA或TableProcessB中创建一行时,都会调用一个函数,该函数为每个函数创建一个全局唯一的ID。因此,基本上,TableProcessA和TableProcessB中的所有Id字段都将不包含任何匹配项,因为Id不仅是其表唯一的,而且对于整个数据库都是唯一的。 我的问题是,这是什么标准?我想到了一个想法,即每个表都应该仅具有一个自动递增的ID,该ID仅对表而不对整个数据库唯一。

6
围绕唯一索引最大16列的任何方式
根据CREATE INDEX文档: 单个组合索引键最多可以组合16列。 我们有一个约18列的表格,需要形成一个唯一的组合。该表对性能不敏感-我们很少更新值/插入记录。我们只需要确保避免重复记录即可...并认为我们可以施加一个简单的唯一性约束。 有任何想法吗?如果有更好的方法,我愿意完全避免使用唯一的索引/约束。

9
哪个DBMS足够快(足以容纳数千名玩家)进行在线游戏?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 我目前正在制作MMORPG游戏,该游戏可能同时有数千名玩家在线(可能不是;只是一厢情愿)。首先,我们想使用MySQL,但是我听说它还不够快。 哪个DBMS足够快?它有多像SQL Server(就像我在学校学到的那样)?

2
我是否违反了数据库设计中的任何NF规则?
我是创建数据库的新手...我需要为我的招聘Web应用程序创建数据库。 我的应用程序需要安排申请人的筛选,考试和面试,并将结果保存在数据库中。 我的数据库架构如下: 我的问题是我applicant_id在其他表格中包括...,例如考试,面试,考试类型。 我违反任何规范化规则吗?如果这样做,您建议如何改进我的设计?

3
有关大型SQL Server数据库设计的建议
我们正在MSSQL 2008 R2 Standard中创建一个数据库,该数据库将存储大量记录。我们每年在一张表中估计有2亿多条记录,而我们主要是在插入数据时很少进行UPDATE或DELETE操作。它是一个数据存档系统,我们每天都在其中插入历史记录。我们将根据用户要求在此历史记录上生成不同类型的报告,因此我们有些顾虑,需要技术投入和建议。 管理此类存档表和数据库的最佳方法是什么?

3
数据库设计建议
我正在为我们的销售团队设计一个数据库,以用作快速的工作报价工具。我想对设计的特定方面提供一些反馈。 报价基本上是通过选择预定义“装配”的列表来建立的,每个装配都有一个议定的价格。主窗体的简化视图如下所示: +------------ --- ---+ | Assembly options | +------------+------------+----------+------------+---+---+---+ --- +--+ | assembly ▼ | unit cost | quantity | total cost | 1 | 2 | 3 | |50| +------------+------------+----------+------------+---+---+---+ --- +--+ | VSD55 | £10'000 | 2 | £25'500 | 1 | 1 | | | | …

2
在ER图中具有没有关系的实体是否可以?
我正在为一个类分配创建一个ER图,我想知道是否有可能创建一个与任何其他实体没有直接关系的实体,并仅使用外键来连接它们。下图说明了我想做什么 基本上,我的图已经开始变得非常复杂,如果我不必在每个实体之间保持联系,那将很棒。 FWIW,如果有帮助,我正在使用Chen和Crow's Foot表示法。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.