问题标签 [database-agnostic]
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.
sql - 存储树数据的快速关系方法(例如文章的线程评论)
我有一个存储对文章的评论的 cms。这些注释既可以是线程的,也可以是非线程的。尽管从技术上讲,它们是相同的,只是在未线程化时将回复列留空。我的应用程序适用于 sqlLite、MySQL 和 pgsql,所以我需要相当标准的 SQL。
我目前有一个评论表
我的问题是弄清楚如何最好地表示数据库中的线程评论。也许在一个单独的表格中,它支持没有内容的树集和一个简单的表格来保存文本?也许它已经是这样了?也许是另一种方式?
如果评论没有线程,我可以很容易地按时间戳排序。
如果它们有螺纹,我会这样排序
正如您从 ORDER BY 中看到的那样,注释查询永远不会使用索引作为基于函数的索引,仅真正存在于 Oracle 中。帮助我拥有闪电般的快速评论页面。
sql - 用于返回存储为时间戳的出生日期列表的数据库无关 SQL
如果我需要搜索没有小时和分钟存储的出生日期,但我必须搜索的日期包括小时和分钟,那么返回所有日期仅在日、月和年匹配的行的最佳方法是什么
即
存储为 01-JAN-50 10.22.06.000000000
日期选择 01-JAN-50 10.22.06.010101120
如果我将日期与小时和分钟一起使用,SQL 将只返回具有确切时间戳的行,而不是仅返回日、月和年的行。
SQL 需要在 Oracle、SQLServer、MySQL 和 DB2 上运行。
c# - 在 C# 中创建时间戳的函数
我想知道,有没有办法在 c# 中从日期时间创建时间戳?我需要一个毫秒精度值,它也适用于 Compact Framework(说因为 DateTime.ToBinary() 在 CF 中不存在)。
我的问题是我想以与数据库无关的方式存储这个值,这样我可以稍后对其进行排序并找出哪个值更大等等。
ruby-on-rails - Rails:使这个查询与数据库无关......?
我的模型中有这两行,是为 PostgreSQL 编写的:
我在生产中运行 PostgreSQL,但我正在使用 SQLite3 进行开发。如何以与数据库无关的方式编写这些行?
顺便说一句,“recorded_on”由以下组成:
language-agnostic - ID 列推荐使用什么数据类型?
我意识到这个问题很可能以前被问过,但我在 StackOverflow 上的问题中搜索了一些,但我并没有真正找到我的答案,所以就这样吧。如果您发现重复,请链接到它。
出于某种原因,我更喜欢将Guid
s (uniqueidentifier
在 MsSql 中)用于我的主键字段,但我真的不知道为什么这样会更好。在我最近学习的许多教程中,都使用了自动递增int
的方法。我可以看到两者的优缺点:
- A
Guid
始终具有相同的大小和长度,没有理由担心用完它们,而在用完适合int
. int
是(至少在 C# 中)可以为空的类型,在查询数据时会打开几个快捷方式。- 并且
int
更容易阅读。 - 我敢打赌,你至少可以在这里想出更多的东西。
所以,正如标题所说的那样简单:数据库中 ID(主键)列的推荐数据类型是什么?
编辑:收到几个简短的答案后,我还必须添加这个后续问题。没有它,您的答案既不具有说服力,也不具有教育意义……;)您为什么这么认为,而另一个选项的缺点是什么使您不选择它?
xsd - 用于描述关系数据库模式的标准数据库中性 XSD
有人知道供应商中立的 XSD 来描述关系数据库模式吗?我们的系统需要获取有关数据库结构的信息:
- 表
- 列和类型
- 主键和外键约束
- 索引
- ETC
以独立于供应商的方式并将其存储在 XML 文件中以供以后处理。
在我们做我们通常做的事情并自己动手之前。我想做一些研究,看看是否存在人们正在标准化的现有 XSD,因为我认为这对建模工具等并不少见。我在谷歌上没有找到任何不是数据库供应商特定的东西。如果您知道现有的公共标准,我将非常感谢您提供链接。
提前致谢,
特伦斯
orm - 主键 - 本机、序列或 GUID 键?
在阅读这个和这个然后阅读这个(讽刺地引用其他两个)时,我发现自己想知道这个话题的讨论有多大?我是一名 SQL Server 人员,因此我倾向于使用以 int 形式自动生成的标识。但是,当我知道我需要在服务器和服务器之间进行某种形式的复制或在客户端和服务器之间进行同步时,我倾向于使用 GUID 作为我的密钥。
问题: 我是否应该始终使用 GUID 作为所有表的主键,以防万一我可能需要这种可能的可扩展性?这是否使我的架构更加灵活,因为它可以随时在平台之间迁移?通过不嵌入特定于平台的功能,这是否有助于我保持我的 ORM 的灵活性(无论其风格如何)?
回应:
@David Archer:根据您的评论,我更新了我的帖子,不再说“天然钥匙”。您是正确的,因为自然键是这样定义的。感谢您的指正。
database - 数据库集群和负载均衡
什么是数据库集群?如果您允许同一数据库位于 2 个不同的服务器上,它们如何保持数据之间的同步。从数据库服务器的角度来看,这与负载平衡有何不同?
database-design - 用于数据库设计的静态分析工具
我正在寻找数据库层的静态分析工具。我得到了一些关于审查 PLSQL、TSQL代码的答案,我想知道有哪些选项可用于审查用于表及其列的命名约定、外键约束和触发器等的数据库设计。
有一篇关于ApexSQL Enforce的MSDN 文章,但它主要针对 SQLServer。
database-design - 我如何规范这个数据库设计?
我正在为客户创建一个划船报告和统计系统,目前我的结构类似于以下内容:
这是一个示例数据行,但我想将其扩展到 Rowers 表和 Coaches 表等,但我不知道如何最好地将其链接回 Entries 表,这就是它。
有没有人有什么智慧之言可以和我分享?
更新
一个团队可以有任意数量的教练和赛艇运动员,一个赛艇运动员可以在多个团队中(团队 A、B、C 等),一个团队可以有多个教练。