我想扩展具有数据库功能的WPF应用程序.你会建议哪个数据库引擎?为什么?SQLite,SQL CE,其他?
我正在创建一个用于存储历史股票数据的数据库模式.我目前有一个架构,如下所示.
我的要求是为多个股票代码存储"条形数据"(日期,开盘价,最高价,最低价,收盘价).每个符号也可能有多个时间范围(例如Google Weekly bars和Google Daily bar).
我当前的架构将大部分数据放在OHLCV表中.我远非数据库专家,如果这太天真,我很好奇.建设性的投入非常受欢迎.
CREATE TABLE Exchange (exchange TEXT UNIQUE NOT NULL);
CREATE TABLE Symbol (symbol TEXT UNIQUE NOT NULL, exchangeID INTEGER NOT NULL);
CREATE TABLE Timeframe (timeframe TEXT NOT NULL, symbolID INTEGER NOT NULL);
CREATE TABLE OHLCV (date TEXT NOT NULL CHECK (date LIKE '____-__-__ __:__:__'),
open REAL NOT NULL,
high REAL NOT NULL,
low REAL NOT NULL,
close REAL NOT NULL,
volume INTEGER NOT NULL,
timeframeID INTEGER NOT NULL);
Run Code Online (Sandbox Code Playgroud)
这意味着我的查询当前类似于:查找给定符号/时间范围的timeframeID,然后在timeframeID匹配的OHLCV表上执行选择.
我正在使用的SQLite数据库表需要在需要时添加列.我不想硬编码列,冒着更新数据库和忘记更新硬编码值的风险.我怎么能返回表中列的所有名称?(最好在a String[])
我有一个包含一些表的数据库.我想使用多个线程更新表.我将在所有线程中使用相同的SQLiteDatabase实例.
请建议这种方法是否正确.Sqlite数据库线程安全吗?两个不同的线程可以同时为不同的值集更新同一个表.
我想从SQLite查询返回的Cursor中获取一个整数,但我知道整数可能为null.不幸的是我找不到允许我检查这个的任何Cursor方法.
代码将是
mModifiedDate = cursor.getInt(cursor.getColumnIndex(MODIFIED_DATE));
Run Code Online (Sandbox Code Playgroud)
我希望有一个可能的空值,这实际上是出于各种原因所希望的 - 字段是指第二个表被修改的时间,第一个表可以在第二个表之前填充.不幸的是,Cursor的文档说,无论是抛出异常,还是返回错误值,还是其他行为都留给实现,而SQLiteCursor文档没有说明任何内容.
如果该字段为空,此代码将执行什么操作?有没有办法在调用getInt()之前检查这个?
Python中是否有可用于SQLite的轻量级数据库包装器.我想像Django的ORM,但我可以指向一个数据库文件,它将为我创建所需的API(即处理所有的CRUD).
是否有工具显示SQLite 3数据库的数据库方案,如MySQL Workbench和Reverse Engineering?我的意思是图形表示
什么是MySQL的SQLite 3(3.7.11)模拟
mysql -p -u username database_name < file.sql
Run Code Online (Sandbox Code Playgroud)
执行给定SQL脚本文件中针对指定数据库的所有查询?
我一直在我的应用程序中使用ORMLite,我正在考虑是否转向greenDAO.
性能是该决定的重要组成部分,greenDAO的功能页面说:
对于相同的给定实体,greenDAO插入和更新实体的速度提高了2倍,并且加载实体的速度比ORMLite快4.5倍.
...
(图表和图表更新于10-23-2011)
我认为ORMLite的配置文件生成步骤应该在运行时不需要反射.
ORMLite changlog表明greenDAO基准测试是在配置文件功能发布后完成的,但是greenDAO功能页面没有明确说明是否为测试生成了静态配置文件.
4.26:9/26/2011(svn r1978)
*ANDROID:添加了字段配置实用程序,以避免带注释的Dao创建性能问题.
从那以后,也有ORMLite性能修复,例如
4.40:4/16/2012(svn r2516)
*ANDROID:创建DAO时出现大的性能错误修复.外部字段总是使用反射而不是表格配置.
谁能确认greenDAO和ORMLite之间是否仍有很大的性能差异?谢谢!
我正在使用最近在Google I/O上宣布的Android架构组件中的Android的Room Persistence Library.事情似乎有效,但我收到以下错误:
警告:tagId列引用外键但它不是索引的一部分.每当修改父表时,这可能会触发全表扫描,因此强烈建议您创建一个涵盖此列的索引.
我的数据库有3个表:Note,Tag,和JoinNotesTags.对标记的注释是多对多关系,因此JoinNotesTags表用于处理映射.表格很简单:
Note.id并且Tag.id都是主键JoinNotesTags.noteId 引用 Note.idJoinNotesTags.tagId 引用 Tag.id外键约束在JoinNotesTags表上定义.作为参考,这是表的CREATE TABLE声明JoinNotesTags:
"CREATE TABLE IF NOT EXISTS `JoinNotesTags` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`noteId` INTEGER,
`tagId` INTEGER,
FOREIGN KEY(`noteId`) REFERENCES `Note`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE ,
FOREIGN KEY(`tagId`) REFERENCES `Tag`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION
)"
Run Code Online (Sandbox Code Playgroud)
这是@Entity该类的相应注释:
@Entity(
indices = arrayOf(Index(value = *arrayOf("noteId", …Run Code Online (Sandbox Code Playgroud)