Tag: 数据库

MySQL的工作台与phpMyAdmin

我只使用phpMyAdmin,但后来我偶然发现看起来很有前途的MySQL Workbench。 我不知道是否有人尝试过,可以给你的想法相比,phpMyAdmin。 它可以完全取代phpMyAdmin?

为什么Rails迁移定义应用程序中的外键而不是数据库中?

如果我定义了一个Customer “有很多” Orders的Customer和Order模型,并且Order “属于” Customer ,我们在Rails中通过customer_id来讨论Order有一个外部关键字,但我们并不是说这个在数据库中执行。 由于Rails没有将其定义为数据库级别的约束,因此可能在应用程序之外(或者如果您收到同时发生的请求,则在内部)违反了数据完整性的风险,除非您手动强制实施数据库中的约束。 为什么Rails没有在数据库级别定义外键,或者有没有办法让Rails做到这一点? class Customer < ActiveRecord::Base has_many :orders end class Order < ActiveRecord::Base belongs_to :customer end ActiveRecord::Schema.define(:version => 1) do create_table "customers", :force => true do |t| t.string "name" end create_table "orders", :force => true do |t| t.string "item_name" t.integer "customer_id" end end

在UI中执行业务逻辑的unit testing数据库应用程序

我自己pipe理一个相当大的应用程序(5万行代码),它pipe理一些相当关键的业务行为。 为了简单描述这个程序,我想说这是一个能够显示和更改数据库数据的奇特UI,它pipe理着大约1000个出租单位,大约3万个租户和所有的财务。 当我做出改变的时候,因为代码基础太大,我有时候会在别的地方把事情弄坏。 我通常testing它通过去function级别(即我运行该程序,通过用户界面工作)的东西,但我不能testing任何情况。 这就是为什么我想要开始unit testing。 但是,这不是一个真正的三层程序,具有数据库层,业务层和UI层。 许多业务逻辑在UI类中执行,许多事情都是在事件上完成的。 让事情变得复杂,一切都是数据库驱动的,而且我还没有看到(迄今为止)关于如何unit testing数据库交互的好build议。 怎样才能开始这个应用程序的unit testing。 记住。 我从来没有做过unit testing或TDD。 我应该重写它以从UI类中删除业务逻辑(很多工作)吗? 或者,还有更好的方法?

截断,事务和删除数据库策略之间的区别

使用Rspec时,截断,事务和删除数据库策略有什么区别? 我找不到解释这个的任何资源。 我阅读了数据库清理器的自述文件,但是并没有解释它们各自的作用。 为什么我们必须为水豚使用截断策略? testing时是否必须清理数据库,还是可以禁用它? 我不明白为什么我应该在每个testing用例之后清理我的数据库,难道不会减慢testing吗?

如何创build我自己的推荐引擎?

这些天我对推荐引擎很感兴趣,我想在这方面提高自己。 我正在阅读“ 编程集体智慧 ”,我认为这是O'Reilly最好的关于这个主题的书。 但是我不知道如何实现引擎。 我的意思是“不知道”是“不知道如何开始”。 我有一个像Last.fm这样的项目。 在哪里(应该在数据库端或后端执行)我开始创build推荐引擎? 什么级别的数据库知识将需要? 有没有可用于帮助或任何资源的开源软件? 我应该做的第一步是什么?

sqlite3的:: BusyException

现在使用SQLite3运行一个rails站点。 大约每500个请求一次,我得到一个 ActiveRecord :: StatementInvalid(SQLite3 :: BusyException:数据库被locking:… 有什么办法来解决这将是微创入侵我的代码? 目前我正在使用SQLLite,因为您可以将数据库存储在源代码pipe理中,这使得备份变得非常自然,而且您可以快速地将更改推送出去。 但是,显然不是真正为并发访问设置的。 明天早上我将迁移到MySQL。

如何在db列中存储列表

我想将一个对象FOO存储在数据库中。 可以说FOO包含三个整数和一个“ 水果 ”列表。 该列表可以有任何长度,我知道的唯一的事情是所有的水果允许存储在另一个表。 我可以将水果列表存储在列中吗?

Postgres将列整数更改为布尔值

我有一个字段是INTEGER不为NULL默认0,我需要改变为布尔。 这是我正在使用的: ALTER TABLE mytabe ALTER mycolumn TYPE bool USING CASE WHEN 0 THEN FALSE ELSE TRUE END; 但是我得到: ERROR: argument of CASE/WHEN must be type boolean, not type integer ********** Error ********** ERROR: argument of CASE/WHEN must be type boolean, not type integer SQL state: 42804 任何想法? 谢谢。

如何在可撤销的asynchronous/等待处置TransactionScope?

我正在尝试使用新的asynchronous/等待function与数据库asynchronous工作。 由于一些请求可能是冗长的,我希望能够取消它们。 我遇到的问题是, TransactionScope显然有一个线程亲和力,似乎取消任务时,它的Dispose()运行在一个错误的线程。 特别是,当调用.TestTx()我得到以下AggregateException在task.Wait ()上包含InvalidOperationException : "A TransactionScope must be disposed on the same thread that it was created." 代码如下: public void TestTx () { var cancellation = new CancellationTokenSource (); var task = TestTxAsync ( cancellation.Token ); cancellation.Cancel (); task.Wait (); } private async Task TestTxAsync ( CancellationToken cancellationToken ) { using ( […]

SQL按计数sorting

如果我有一个表和这样的数据: ID | Name | Group 1 Apple A 2 Boy A 3 Cat B 4 Dog C 5 Elep C 6 Fish C 我希望按照从小到大的顺序排列,如:A-2条logging,B-1条logging,C-3条logging,所以会变成: 3 Cat B 1 Apple A 2 Boy A 4 Dog C 5 Elep C 6 Fish C 我试过了 $sql = "SELECT ID,Name FROM table ORDER BY COUNT(Group)"; 但它只是为我返回一个结果。 有什么提示吗? […]