什么是数据库集群?如果允许同一数据库位于2个不同的服务器上,它们如何使数据保持同步.这与数据库服务器角度的负载均衡有何不同?
我想知道,有没有办法在日期时间在c#中创建时间戳?我需要一个毫秒精度值,它也可以在Compact Framework中工作(说因为CF中不存在DateTime.ToBinary()).
我的问题是我想以数据库无关的方式存储这个值,所以我可以稍后对其进行排序,并找出哪个值来自另一个等等.
c# timestamp compact-framework time-precision database-agnostic
这个问题是关于数据库视图,而不是物化视图.
优点:
缺点:
还有什么?
如果我有两个具有多对多关系的对象,我通常会在我的数据库模式中使用多对多表对它们进行建模,以将两者关联起来.但是,多对多表(或"连接表")是否有自己的主键(整数自动递增)?
例如,我可能有表A和B,每个表都有一个ID,还有一个名为A_B的表,其外键元组为(A_ID,B_ID).但是A_B是否应该拥有自己的主键自动递增ID列?
添加它有什么优缺点?我个人喜欢用于多对多连接的自然键.但主要关键是增加了什么?
Hibernate的CriteriaAPI具有Restrictions.ilike以下合同的功能:
不区分大小写的"喜欢",类似于Postgres ilike运算符
这很酷.但是同一个班级也有like功能,合同含义要多得多:
对命名属性应用"like"约束
例
Criteria cr = session.createCriteria(Employee.class);
// To get records having fistName starting with zara
cr.add(Restrictions.like("firstName", "zara%"));
// Case sensitive form of the above restriction.
cr.add(Restrictions.ilike("firstName", "zara%"));
Run Code Online (Sandbox Code Playgroud) 代表NCAA男子篮球支架的最佳数据库架构是什么?如果你不熟悉,这里有一个链接:http://www.cbssports.com/collegebasketball/mayhem/brackets/viewable_men
我可以看到几种不同的方式来建模这些数据,包括单个表,许多表,硬编码列,有些动态方式等.您需要一种方法来模拟每个团队所处的种子和位置,以及每个游戏和每个人的结果(可能得分).您还需要一种方式来表示谁在比赛的哪个阶段比赛谁.
本着疯狂三月的精神,我认为这是一个很好的问题.这里有一些明显的答案,这个问题的主要目标是看到你能够回答它的所有不同方法.哪种方式最好可能对您正在使用的语言具有主观性,或者您使用它的确切程度如何,但尝试保持答案与数据库无关,语言无关且相当高级别.如果有人对更好地说出这个问题有任何建议或更好的方法来定义它,请在评论中告诉我.
我有一个cms存储对文章的评论.这些注释可以是线程的,也可以是非线程的.虽然技术上它们是相同的,只是在没有线程的情况下,回复列留空.我的应用程序适用于sqlLite,MySQL和pgsql,所以我需要相当标准的SQL.
我目前有一个评论表
comment_id
article_id
user_id
comment
timestamp
thread (this is the reply column)
Run Code Online (Sandbox Code Playgroud)
我的问题是弄清楚如何最好地代表数据库中的线程注释.也许在一个单独的表中支持没有内容的树集和一个简单的表来保存文本?也许它已经是这样了?或许另一种方式?
如果注释是非线程的,我可以很容易地按时间戳排序.
如果他们是线程我就像这样
ORDER BY SUBSTRING(c.thread, 1, (LENGTH(c.thread) - 1))
Run Code Online (Sandbox Code Playgroud)
正如您在ORDER BY中看到的那样,注释查询将不会使用索引,因为基于函数的索引实际上只存在于Oracle中.帮我快速点评评论页面.
我试图使用querydsl为动态模式构建动态查询.我试图获得只是查询而不必实际执行它.
到目前为止,我遇到了两个问题: - schema.table符号不存在.相反,我只得到表名. - 我已经能够得到查询,但它将变量分开并放入'?' 相反,这是可以理解的.但我想知道是否有某种方法可以获得完全具体化的查询,包括参数.
这是我当前的尝试和结果(我使用MySQLTemplates来创建配置):
private SQLTemplates templates = new MySQLTemplates();
private Configuration configuration = new Configuration(templates);
String table = "sometable"
Path<Object> userPath = new PathImpl<Object>(Object.class, table);
StringPath usernamePath = Expressions.stringPath(userPath, "username");
NumberPath<Long> idPath = Expressions.numberPath(Long.class, userPath, "id");
SQLQuery sqlQuery = new SQLQuery(connection, configuration)
.from(userPath).where(idPath.eq(1l)).limit(10);
String query = sqlQuery.getSQL(usernamePath).getSQL();
return query;
Run Code Online (Sandbox Code Playgroud)
而我得到的是:
select sometable.username
from sometable
where sometable.id = ?
limit ?
Run Code Online (Sandbox Code Playgroud)
我想得到的是:
select sometable.username
from someschema.sometable
where sometable.id = ?
limit ?
Run Code Online (Sandbox Code Playgroud)
更新:我想出了这种黑客来获取参数实现(不理想,并希望更好的解决方案)但仍然 …
"group by"子句是否自动保证结果将按该键排序?换句话说,写下来是否足够:
select *
from table
group by a, b, c
Run Code Online (Sandbox Code Playgroud)
或者是否必须写
select *
from table
group by a, b, c
order by a, b, c
Run Code Online (Sandbox Code Playgroud)
我知道,例如在MySQL中我不必,但我想知道我是否可以依赖它来实现SQL实现.有保证吗?
sql ×6
database ×5
java ×2
ansi-sql-92 ×1
c# ×1
data-storage ×1
group-by ×1
hibernate ×1
many-to-many ×1
querydsl ×1
syntax ×1
timestamp ×1
tree ×1
views ×1