问题标签 [database-design]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
761 浏览

sql - 克隆分层数据

让我们假设我有一个自引用分层表构建像这样的经典方式:

我现在需要的是一个函数(最好是纯 sql),它将获取测试记录的 id 并克隆所有附加记录(包括给定的记录)。克隆的记录当然需要有新的 id。例如,期望的结果是这样的:

任何指针?我使用的是 PostgreSQL 8.3。

0 投票
3 回答
16152 浏览

sql - varchar(255) v tinyblob v tinytext

我的问题是 tinyblob 和 tinytext 之间真的有什么区别吗?

购买我真正的问题是什么原因(如果有的话)我会选择 varchar(255) 而不是 tinyblob 或 tinytext?

0 投票
9 回答
423 浏览

database-design - 数据库设计

我需要创建一个数据库来存储模拟结果。有什么资源可以帮助我设计这个?

编辑:对于那些想要更多细节的人......

我们使用军方使用的离散事件模拟。因此,重要的模拟事件是武器开火、击杀发生时以及武器未能击杀目标时。其他重要事件是检测到目标或不再跟踪目标。我们保留了非常详细的日志文件,然后我们会挖掘这些文件来计算平均值和其他统计数据。这主要是我关心存储在数据库中的统计数据。

我想包括的另一件事是案例 ID。我们使用与系统和重要输入参数的特定组合相对应的字母数字案例 ID 字符串来识别不同案例。例如,假设传感器可以根据模式在 3 个不同范围内检测到目标,则案例 ID 中将有一个字符对应于每个检测范围级别,标记为 0、1 或 2。如果有足够的级别对于给定的案例,案例 ID 字符在 9 之后切换为字母。这个案例 ID 肯定是数据库中的一个重要键。一旦我们存储了数据,我们需要检索某些数字来制作比较不同情况的图表。我们目前在 Excel 中制作图表,但我最近一直在添加更多 MATLAB。

至于数据库技术,我想我会在Access中做表设计来原型化,然后在MS SQL Server中实现它。我打算使用 Ruby 创建带有数据表和图表的 HTML 报告。

0 投票
7 回答
6024 浏览

sql - SQL Server 规范化策略:varchar vs int Identity

我只是想知道这里的最佳解决方案是什么。

假设我有一个规范化的数据库。整个系统的主键是一个varchar。我想知道我应该将此 varchar 与 int 关联以进行规范化还是保留它?保留为 varchar 更简单,但可能更理想

例如我可以有

或者我可以

当然,还要添加几个其他的一对多关系。

大家怎么看?哪个更好?为什么?

0 投票
8 回答
56307 浏览

sql-server - 如何在数据库中存储目录/层次/树结构?

如何在数据库中存储目录/层次结构/树结构?即 MSSQL 服务器。

@olavk:看起来您没有看到我自己的答案。我使用的方式比递归查询更好:)

pps这就是要走的路!

0 投票
5 回答
14076 浏览

linux - 你能推荐一个适用于 Linux 的 PostgreSQL 可视化数据库设计器吗?

当我在 Windows 中时,我使用优秀的 MicroOLAP Database Designer for PostgreSQL,但它不是开源的或多平台的。
您知道或可以向我推荐可以在 Linux 中使用的该软件的替代品吗?

编辑:澄清一下,我不想用 wine 来模拟 PostgreSQL 的 MicroOlap,它工作得不太好,我更喜欢本机或基于 Java 的东西。

0 投票
6 回答
121606 浏览

design-patterns - 关系数据库设计模式?

设计模式通常与面向对象的设计有关。
是否有用于创建和编程关系数据库的设计模式
许多问题肯定有可重用的解决方案。

示例将包括用于表设计、存储过程、触发器等的模式......

是否有此类模式的在线存储库,类似于martinfowler.com


模式可以解决的问题示例:

  • 存储分层数据(例如,具有类型的单个表与具有 1:1 键和差异的多个表......)
  • 存储具有可变结构的数据(例如,通用列 vs xml vs 分隔列...)
  • 非规范化数据(如何在影响最小的情况下做到这一点,等等......)
0 投票
9 回答
389 浏览

sql - Sql设计问题-多个部分中的项目

我有一个sections 表和一个items 表。

问题是每个项目可能位于一个或多个部分中,因此每个项目的简单“section_id”将不起作用,并且 sql 没有办法存储我可以说“section_ids 中的 WHERE 5”的数组。 ..

我考虑过将 id 列表存储为逗号分隔的字符串,问题是我看不到任何方法来检查项目是否在 sql 查询的给定部分中。我在这里看到的唯一选项是选择整个表,并在 php.ini 中解析字符串。不用说,有 1000 件物品,这不是一个好主意。

有没有更好的方法来“链接”具有多个部分的项目,并且能够轻松选择给定部分 ID 的所有项目?

0 投票
3 回答
850 浏览

database - 我可以在我的事实表中将非度量代码与度量混合吗?

我们正在做一些复杂的数据积累。我们的客户向我们发送了一些包含两个维度(时间和业务单位)的内容。时间主要是年月。业务单位维度只有几个属性:名称和几个类别,BU 可以属于这些类别以用于报告和分析目的。

他们发给我们的东西包括一些当前状态信息(日期和代码)。这些看起来像事实。他们还发送一些描述与业务部门关系的信息(主要是附加代码)。同样,这些对于业务部门和时间段来说是独一无二的。

最后,他们向我们发送了显然是附加事实的东西。它包括具有适当单位的货币和计数。

我应该将这些定性信息与附加事实混合在一个事实表中吗?或者我应该将定性的东西(只能与计数一起使用)与定量的东西(可以与总和一起使用)分开吗?

0 投票
3 回答
3991 浏览

database-design - 多用户的 CouchDB 建模

我已经对文档数据库感到兴奋,尤其是对 CouchDB 的简单性感到兴奋。但是我很难理解这样的数据库是否是多用户系统的可行选择。因为这些系统需要文档数据库不提供的记录之间的某种关系。

对于这种情况,它完全是错误的工具吗?或者一些标记和临时视图是实现这一点的方法?要不然...

更新:
到目前为止,我了解答案。但是让我重新表述一下这个问题。假设我有大量半结构化数据,通常适合 CouchDB。我可以将它们标记为“type=post”和“year=2008”。我的问题是这种类型的标记我能走多远?假设我可以创建一个包含 10.000 个名称的数组字段吗?或者有没有更好的方法来做到这一点?这是一个理解如何在这种基于文档的意义上思考的问题。