如果我有一张桌子
CREATE TABLE users (
id int(10) unsigned NOT NULL auto_increment,
name varchar(255) NOT NULL,
profession varchar(255) NOT NULL,
employer varchar(255) NOT NULL,
PRIMARY KEY (id)
)
Run Code Online (Sandbox Code Playgroud)
我希望获得所有独特的profession字段值,更快(或推荐):
SELECT DISTINCT u.profession FROM users u
Run Code Online (Sandbox Code Playgroud)
要么
SELECT u.profession FROM users u GROUP BY u.profession
Run Code Online (Sandbox Code Playgroud)
?
我有点想在C#.Net中使用SQLite,但我似乎无法找到合适的库.有吗?一个正式的?有没有其他方法可以使用SQLite而不是使用包装器?
Android中使用的SQLite版本是什么?
原因:我想知道如何处理模式迁移.较新的SQLite版本支持"ALTER TABLE"SQL命令,这将节省我不得不复制数据,删除表,重新创建表和重新插入数据.
前言:我正在尝试在具有关系数据库的MVC架构中使用存储库模式.
我最近开始用PHP学习TDD,并且我意识到我的数据库与我的应用程序的其余部分非常接近.我已经阅读了有关存储库和使用IoC容器将其"注入"我的控制器的内容.很酷的东西.但是现在有一些关于存储库设计的实际问题.考虑以下示例.
<?php
class DbUserRepository implements UserRepositoryInterface
{
protected $db;
public function __construct($db)
{
$this->db = $db;
}
public function findAll()
{
}
public function findById($id)
{
}
public function findByName($name)
{
}
public function create($user)
{
}
public function remove($user)
{
}
public function update($user)
{
}
}
Run Code Online (Sandbox Code Playgroud)
所有这些find方法都使用select all fields(SELECT *)方法.但是,在我的应用程序中,我总是试图限制我获得的字段数量,因为这通常会增加开销并减慢速度.对于那些使用这种模式的人,你如何处理这个?
虽然这个类现在看起来不错,但我知道在现实世界的应用程序中我需要更多的方法.例如:
如您所见,可能存在非常长的可能方法列表.然后,如果您添加上面的字段选择问题,问题就会恶化.在过去,我通常只是将所有这些逻辑放在我的控制器中:
<?php
class MyController
{
public function users()
{
$users = User::select('name, email, status') …Run Code Online (Sandbox Code Playgroud) 我最近开始在我的.NET 4.0应用程序中使用Entity Framework 4.0,并对与池化相关的一些事情感到好奇.
据我所知,连接池由ADO.NET数据提供程序管理,在我的情况下是MS SQL服务器.当您实例化新的实体context(ObjectContext)时,这是否适用,即无参数new MyDatabaseModelEntities()?
a)为应用程序创建全局实体上下文(即一个静态实例)或b)使用using块为每个给定操作/方法创建和公开实体上下文有哪些优点和缺点.
我应该了解的某些场景的任何其他建议,最佳实践或常用方法?
我在响应写了一个回答这个问题的错误到一个问题有关的区别TRUNCATE和DELETE,但我认为这是一个耻辱不共享,所以我会后我自己的答案,以我自己的问题...的是,即使道德?:)
编辑:如果您的答案是平台特定的,请指出.
我正在做一个Web应用程序,我需要为一些重大更改创建一个分支,事实是,这些更改需要更改数据库模式,所以我想将整个数据库放在git下.
我怎么做?是否有一个特定的文件夹,我可以保存在git存储库下?我怎么知道哪一个?我怎么能确定我正在放置正确的文件夹?
我需要确定,因为这些变化不向后兼容; 我搞不起搞砸了.
我的数据库是PostgreSQL
有人建议进行备份并将备份文件置于版本控制下而不是数据库中.说实话,我发现真的很难吞下去.
一定有更好的方法.
好的,所以没有更好的方法,但我仍然不太相信,所以我会稍微改变一下这个问题:
我想把整个数据库置于版本控制之下,我可以使用什么数据库引擎,以便我可以将实际数据库置于版本控制而不是转储?
sqlite会对git友好吗?
由于这只是开发环境,我可以选择我想要的任何数据库.
我真正想要的不是跟踪我的开发历史,而是能够从我的"新的激进变化"分支切换到"当前的稳定分支",并且能够例如修复一些错误/问题等等.稳定的分支.这样,当我切换分支时,数据库自动神奇地变得与我当前所在的分支兼容.我真的不太关心实际数据.
其实他们的意思是什么?我找到的关于他们的所有文章都没有给我一个想法,或者我的知识太不足以理解它.
有人会给我一些资源,我可以从头学到这些资源.
可能重复:
IPv6地址的文本表示的最大长度?
作为存储客户端IP地址的数据库列的最大大小,您会建议什么?我现在把它设置为16,但是我可以获得比IPv6更长的IP地址吗?