2013-10-15 37 views
0

我试图建立一个数据库,其中包含不同的过程时间。所以在我的维护中有一个“时间”栏,我想在这个过程中加入时间。时间既可以是固定的时间选择,也可以是相同的。 08:00,12:00,18:00,或只是每天3次(确切的时间是不是真的有关) 或 06:00,20:00或每天2次sqlite固定选择和自由选择

,或者它可以是一个用户确定的时间(其中时间是相关的!),例如 09:00,10:30,11:00

我的问题是,你会怎么把它放到一个sqlite数据库?固定时间可以在主表的“时间”字段中使用不同的表和外键。但是,我应该如何引入用户定义的部分呢?

另一方面,我可以使用一个不同的表,它包含所有时间在自己的行中,并使用主表的外键连接所有相应的时间。但这并不适合固定的时间。

在我看来,没有任何解决方案让我满意。

+0

为什么数据库需要知道时间是否是固定时间? –

+0

我认为这将是一个很好的解决方案,以保持数据库小!? - 这意味着你只需要将每一次放在一行中,如果程序在数据库中添加了一个新的“每日3次”条目,那么程序会将它分成正确的时间并保存起来? – MS1

回答

0

SQLite根据您保存的值的大小以1,2,3,4,6或8个字节存储整数数据。所以如果你想使用一个键/值系统,你可以。你可以做的其中一个小的,字节大小的数值来表示时间的查找表什么样的时间目标,你想,例如:

Time (table) 
index time type 
1  08:00 fixed 
2  12:00 fixed 
3  18:00 fixed 
4  06:00 fixed 
5  20:00 fixed 
6  09:00 free 
7  10:30 free 

则在处理时间(表):

timeIndex processTime 
3   24 
7   22543 

在处理时间表中的值将被存储为单个字节,假设你在255只有不到256周不同的时间,并为双字节与指数倍

SQlite的快速查找功能可以让你拉出来的提取v时的值处理器时间,你会有一个更小的数据库。