标签: database

轨道中的多个DB连接

我正在尝试连接ROR应用程序中的多个数据库.我的database.yml在您的database.yml文件中看起来像这样

发展:

 adapter: mysql
 username: root
 password: 
 database: example_development
Run Code Online (Sandbox Code Playgroud)

私人的:

adapter: mysql
username: root
password: 
database: example_private_development
Run Code Online (Sandbox Code Playgroud)

可以使用establish_connection:private进行连接

我怀疑是如何使用rake db:create.我无法从谷歌获得解决方案.

请帮我清除它.

mysql database ruby-on-rails ruby-on-rails-3

5
推荐指数
1
解决办法
2722
查看次数

MySQL - 使用一个查询的结果在另一个查询中使用

假设我有这个,产生50,000行:

SELECT photoID FROM photoSearch WHERE photoID BETWEEN 1 AND 50000;
Run Code Online (Sandbox Code Playgroud)

我打算对刚刚返回的那些photoID运行此查询.

SELECT COUNT(people) AS totalPeople, people
FROM people
INNER JOIN photopeople ON photoPeople.peopleID = people.PeopleID
WHERE photoid IN ('ID's from results')
GROUP BY people
ORDER BY totalPeople DESC
Run Code Online (Sandbox Code Playgroud)

但我从其他人和资源中了解到,IN子句表现不佳,特别是因为我可以拥有100,000多个photoID.

将topID中的photoID存储在另一个表(resultsTbl)中或者是一个非常长的字符串中是一个好主意吗?如果是,或者使用连接或子选择来查询这些ID(在底部查询中),而不是使用IN?或者......还有另一种方法可以保持绩效吗?

我们将非常感激地提供任何帮助.

mysql sql database

5
推荐指数
1
解决办法
4万
查看次数

从数据库中的视图查询比从表查询更有效吗?

假设我有一个表A,从该表创建一个视图V.

然后我从V做了几个查询.我想知道每次查询时是否会重新构造V?或者它只会被构造一次,并被DBMS保存在内存中的下一个查询(我认为类似于从表中查询)?

mysql database view

5
推荐指数
1
解决办法
3559
查看次数

在java中迭代对象属性

可能重复:
如何循环Java中的Class属性?

class Foo{
    int id;
    String name;
    int bar;
    int bar2;

    //..
}

Foo foo = new Foo();
Run Code Online (Sandbox Code Playgroud)

有没有办法在java中迭代这个对象属性?我想创建一个INSERT查询,我必须转换字符串中的所有int属性.当有更多不同类型的属性时,这有点问题.

谢谢!

java database

5
推荐指数
1
解决办法
1万
查看次数

Oracle数据库中不区分大小写搜索的性能

我的数据库背景位于MS SQL Server端,其中索引和约束中的文本比较不区分大小写(至少在默认情况下).所以,一旦你有一个值"ABC"分配到一个唯一的列,你不能存储第二值"ABC",如果你搜索"ABC" SQL Server将找到"ABC".

借助Oracle的东西是不同的,因此即使在文本列,你可以存储在那里都"ABC"和"ABC",如果你搜索"ABC",你不会得到任何结果唯一索引.

在Oracle 10gR2之前的AFAIK没有办法绕过它,现在可以设置不敏感的比较,因为恕我直言,因为一切都取决于程序员的纪律.

但是,什么是最糟糕的区分大小写的查找是,那些谁重写所有搜索作为UPPER(some_column)=UPPER(some_text)(这是很多讨论线程建议)与表结束扫描,即使有上some_column指数.性能含义是不稳定的:我刚刚在一个有50万行的表上测试了一个简单的搜索,并且使用UPPER函数调用的搜索比仅使用列标识符的搜索花费了20倍,从而确认在执行函数时不使用索引基于搜索.

在Oracle数据库中进行不区分大小写搜索的最标准技术是否真的如此,即使性能不佳,还是应用UPPER/LOWER函数来搜索元素?或者有更优雅的方法来解决这个问题?

database oracle search case-insensitive

5
推荐指数
1
解决办法
6479
查看次数

如何使用Play访问开发数据库!框架?

我想看看我的Play表!使用H2控制台的应用程序,但我看到的只是数据库引擎的内部表列表.如何查看我的应用程序表?

H2控制台

java database h2 playframework

5
推荐指数
1
解决办法
3509
查看次数

Content Provider和Content Observer示例?

我是Android开发的新手,并且与内容提供商和内容观察员一起玩.但是,我无法在线查找示例.我一直在玩和读这个但是已经卡住了.这是我想要做的:

我创建了一个小内容提供商(我已经确认它正在工作并在手机上的数据库中插入/删除数据).我们称之为A.apk.现在我想创建一个B.apk,它将通过对db进行的任何更新得到通知.因此,如果创建新内容,B将显示它,如果内容被删除,它将从B的视图中删除.

我很困难,很想看看如何使用最佳实践正确完成这项工作.一个例子将非常感谢!

database android android-contentprovider observer-pattern

5
推荐指数
1
解决办法
9121
查看次数

如何在数据库表中指定客户默认送货地址?

这是一个简单的例子:

假设我有一个与地址表具有一对多关系的客户表(客户可以有多个送货地址,但送货地址只能属于一个客户).

Customer Table
-------------
customer_id (PK)


Address Table
-------------
address_id (PK)
customer_id (FK)
Run Code Online (Sandbox Code Playgroud)

现在我希望每个客户都能够指定默认的送货地址.

我可以想到两种方法,但都有缺点.

选项1

将一个布尔列添加到名为"is_default"的地址表中.

优点

  1. 选择查询很简单
  2. 如果他们看到数据库模型,那么其他人可以直接理解

缺点

  1. 应用程序被强制执行并维护"只有一行可以是默认值"约束.
  2. 更新默认字段很痛苦,因为它要求应用程序检查并重置以前的默认选项.

选项2

在Customer表中添加一个名为"address_id"的列,并将其设为外键(如果不存在地址,也允许空值).

优点

  1. 如果用户决定更改默认地址,则可以轻松更新.
  2. 数据库维护"只有一行可以是默认值"约束.

缺点

  1. 每次我决定添加某种默认元数据时,我都必须向Customers表添加一个新的索引列.

  2. 看起来像一个黑客

我的问题是,有没有一种标准的方法来处理我忽略的这种情况?当然还有其他选项(可能会创建一个EAV默认选项表?)但我更喜欢保持它尽可能简单,因为对现有代码库进行了更改,所以我不想破坏任何东西.

mysql database

5
推荐指数
1
解决办法
291
查看次数

有关mongodb上限集合+ tailable游标的问题

我正在构建一个排队系统,通过使用capped_collections和tailable游标在mongodb中实现的堆栈将消息从一个进程传递到另一个进程.

接收进程在capped_collection中循环无限地寻找新文档,当它找到一个时,它执行一个操作.

我的问题是,如果我实现了多个接收进程,是否有办法保证新文档只能由一个使用tailable游标的进程读取一次?目标是如果有两个接收进程在队列中查找新消息,则避免执行两次操作.我对mongodb编程比较陌生,所以我仍然对它的所有功能都有所了解.

database multithreading multiprocessing mongodb

5
推荐指数
1
解决办法
894
查看次数

CodeIgniter中带有Active Record的"count_all_results"和"where"的问题

在CodeIngiter用户指南中,他们说了以下代码:

$this->db->where('name', $name);
$this->db->where('title', $title);
$this->db->where('status', $status); 
// WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
Run Code Online (Sandbox Code Playgroud)

这意味着当我想通过活动记录从数据库中选择一些东西时,我应该使用where方法,它将通过替换AND字段来完成.现在我想创建登录页面,我这样做:

public function True_login($username = '',$password = '')
    {
        $this->db->flush_cache();
        $this->db->where('username',$username);
        $this->db->where('password',$password);
        $count = $this->db->count_all_results('PM_ADMIN_LIST');
        if ($count === 1)
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }
Run Code Online (Sandbox Code Playgroud) 但如果是,它将返回TRUE username=$username OR password = $password.如果在表格中找到一个用户名或密码(并且$count === 1它将返回TRUE)我的prbolem在哪里,我该如何解决?

php database codeigniter

5
推荐指数
1
解决办法
2万
查看次数