问题标签 [database]

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 投票
9 回答
78284 浏览

mysql - 是否有与 MySql 等效的 Profiler?

“Microsoft SQL Server Profiler 是 SQL Trace 的图形用户界面,用于监视数据库引擎或分析服务的实例。”

我发现在开发、测试和调试数据库应用程序问题时使用 SQL Server Profiler 非常有用。有谁知道是否有适用于 MySql 的等效程序?

0 投票
4 回答
6450 浏览

mysql - 自动将 Oracle 表与 MySQL 表同步

我工作的大学使用 Oracle 作为数据库系统。我们目前有我们在晚上运行的程序,可以将我们需要的内容下载到一些本地 Access 表中,以满足我们的测试需求。现在访问变得越来越小,我们需要更大的东西。此外,夜间工作需要不断维护才能继续工作(因为网络问题、表更改、错误代码 :)),我想消除它们以便让我们腾出时间去做更重要的事情。

我最熟悉 MySQL,所以我设置了一个测试 MySQL 服务器。自动将所需表从 Oracle 复制到 MySQL 的最佳方法是什么?

编辑:我接受了答案。我不喜欢这个答案,但根据进一步的研究和缺乏其他答案,它似乎是正确的。感谢大家思考我的问题并回答它。

0 投票
3 回答
2233 浏览

python - 在 Django 的父模型中更新 auto_now DateTimeField

我有两个模型:消息和附件。每个附件都使用附件模型上的 ForeignKey 附加到特定消息。两个模型都有一个名为 updated 的 auto_now DateTimeField。我正在尝试这样做,以便在保存任何附件时,它还将关联消息上的更新字段设置为现在。这是我的代码:

这行得通吗?如果你能向我解释一下,为什么?如果没有,我将如何做到这一点?

0 投票
13 回答
278103 浏览

database - 数据库字段的标准长度列表

我正在设计一个数据库表,并再次问自己同样愚蠢的问题:名字字段应该多长?

有没有人列出最常见字段的合理长度,例如名字、姓氏和电子邮件地址?

0 投票
11 回答
5086 浏览

sql - 表示关系数据库中的排序

我在数据库中有一组对象。照片库中的图像、目录中的产品、书中的章节等。每个对象都表示为一行。我希望能够任意排序这些图像,将该排序存储在数据库中,这样当我显示对象时,它们就会以正确的顺序排列。

例如,假设我正在写一本书,每一章都是一个对象。我写我的书,并按以下顺序排列章节:

简介、可访问性、形式与功能、错误、一致性、结论、索引

它转到编辑器,并返回以下建议的顺序:

介绍、形式、功能、可访问性、一致性、错误、结论、索引

如何以稳健、有效的方式将此排序存储在数据库中?

我有以下想法,但我对其中任何一个都不感到兴奋:

  1. 大批。每行都有一个排序 ID,当更改顺序时(通过删除后插入),订单 ID 会更新。这使得检索变得容易,因为它只是ORDER BY,但似乎很容易破解。

    // REMOVAL
    UPDATE ... SET orderingID=NULL WHERE orderingID=removedID
    UPDATE ... SET orderingID=orderingID-1 WHERE orderingID > removedID
    // INSERTION
    UPDATE ... SET orderingID=orderingID+1 WHERE orderingID > insertionID
    UPDATE ... SET orderID=insertionID WHERE ID=addedID

  2. 链表。每行都有一列用于排序中下一行的 id。遍历在这里似乎很昂贵,尽管可能通过某种方式使用ORDER BY我没有想到的。

  3. 间隔数组。将 orderingID(如 #1 中使用的)设置为大,所以第一个对象是 100,第二个是 200,依此类推。然后当插入发生时,您只需将其放在(objectBefore + objectAfter)/2. 当然,这需要偶尔重新平衡,所以你不会让事物靠得太近(即使使用浮点数,你最终也会遇到舍入错误)。

这些对我来说都不是特别优雅。有没有人有更好的方法来做到这一点?

0 投票
9 回答
8258 浏览

database - 单元测试数据库

去年夏天,我正在开发一个基本的 ASP.NET/SQL Server CRUD 应用程序,单元测试是其中一项要求。当我尝试对数据库进行测试时遇到了一些麻烦。据我了解,单元测试应该是:

  • 无国籍
  • 彼此独立
  • 可重复使用相同的结果,即没有持续的变化

在为数据库开发时,这些要求似乎相互矛盾。例如,如果不确保要插入的行不存在,我就无法测试 Insert(),因此我需要先调用 Delete()。但是,如果他们不在那里呢?然后我需要先调用 Exists() 函数。

我的最终解决方案涉及非常大的设置功能(糟糕!)和一个空的测试用例,它将首先运行并表明设置运行没有问题。这是牺牲了测试的独立性,同时保持了它们的无国籍状态。

我发现的另一个解决方案是将函数调用包装在可以轻松回滚的事务中,例如Roy Osherove 的 XtUnit。这项工作,但它涉及另一个库,另一个依赖项,对于手头的问题,它似乎有点过于繁重。

那么,SO 社区在遇到这种情况时做了什么?


tgmdbm 说:

您通常使用您最喜欢的自动化单元测试框架来执行集成测试,这就是为什么有些人会感到困惑,但他们不遵循相同的规则。您可以参与许多类的具体实现(因为它们已经过单元测试)。您正在测试您的具体类如何相互交互以及如何与数据库交互

所以如果我没看错的话,真的没有办法有效地对数据访问层进行单元测试。或者,数据访问层的“单元测试”是否涉及测试,例如,由类生成的 SQL/命令,独立于与数据库的实际交互?

0 投票
2 回答
1396 浏览

.net - 是否可以在 .Net 应用程序和 COM+ 对象之间共享事务?

不久前我做了一些测试,但从未弄清楚如何进行这项工作。

这些成分:

  • COM+ 事务对象(用 VB6 开发)
  • IIS 中的 .Net Web 应用程序(带有事务)...
    调用 COM+ 组件
    更新 SQL 数据库中的一行

测试:

运行 .Net 应用程序并强制异常。

结果:

从 .Net 应用程序进行的更新会回滚。
COM+ 对象所做的更新不会回滚。

如果我从旧的 ASP 页面调用 COM+ 对象,则回滚工作。

我知道有些人可能在想“什么?!COM+ 和 .Net,你一定是疯了!”,但世界上有些地方仍然有很多 COM+ 组件。我只是好奇是否有人遇到过这个问题,以及你是否知道如何使这项工作。

0 投票
9 回答
16596 浏览

php - 如何使用 GD 调整上传图像的大小并将其转换为 PNG?

我希望允许用户以各种格式(至少 GIF、JPEG 和 PNG)上传头像类型的图像,但要将它们全部保存为PNG 数据库 BLOB。如果图像过大,按像素计算,我想在插入 DB 之前调整它们的大小。

使用 GD 进行大小调整和 PNG 转换的最佳方法是什么?

编辑:可悲的是,我需要使用的服务器上 只有GD可用,没有ImageMagick

0 投票
6 回答
1558 浏览

php - 用 PHP/MySQL 封装数据访问的好方法是什么?

我的大部分经验都在 MSFT 堆栈上,但我现在正在做一个副项目,帮助某人拥有一个基于 LAMP 堆栈的廉价托管个人网站。我安装 extras 的选项是有限的,所以我想知道如何编写我的数据访问代码而不在 .php 文件中嵌入原始查询。

我喜欢保持简单,即使是 .NET。我通常为所有内容编写存储过程,并且我有一个帮助类,它包装所有调用以执行过程和返回数据集。我不是在寻找一个成熟的 ORM,但这可能是要走的路,其他查看这个问题的人可能正在寻找它。

请记住,我使用的是每月 7 美元的 GoDaddy 帐户,因此我仅限于他们基本包中已安装的内容。

编辑:谢谢 rix0rr、Alan、Anders、dragon,我会检查所有这些。我编辑了这个问题,以便对 ORM 解决方案更加开放,因为它们非常受欢迎。

0 投票
10 回答
3931 浏览

database - 将代码放在哪里 - 数据库与应用程序?

我已经开发网络/桌面应用程序大约 6 年了。在我的职业生涯中,我遇到过大量使用存储过程在数据库中编写的应用程序,而许多应用程序对于每个实体只有几个基本的存储过程(读取、插入、编辑和删除实体记录) .

我看到有人争辩说,如果您为企业数据库付费,请广泛使用其功能。而很多“面向对象的架构师”告诉我,在数据库中放置任何多余的东西是绝对的罪行,并且您应该能够使用这些类上的方法来驱动应用程序?

你认为平衡在哪里?

谢谢, 克鲁纳尔