【发布时间】:2018-03-20 01:35:37
【问题描述】:
我正在尝试在 sqlite 数据库中插入一行未定义数量的事件。每个事件都有一对由日期和分数组成,比如说 9-5。据我所知,例如,在不知道我需要多少列的情况下,我无法将每个事件分成两列。
所以,我们有一个日期,例如
datetime.today().timestamp()
1507497496.988682
还有一个参数,比如说
905
在我的示例中,每个日期分数可以有不少于 4 个日期。我想我不能把它全部编码为一个真实的,而且我听说在很多行之后将它作为文本来写它会减慢数据库的速度。
那么,你有什么想法吗?
我的第一个方法是在日期和分数之间添加几个 0,类似于
15074974960000000905
但是生成的数字太长了,无法容纳一个单元格,所以我需要另一种策略
提前致谢
我编辑以添加信息。我正在做的是一个自动过程,在这个过程中,爬虫每天都会从网络上获取信息并通过数据库进行存储。因此,例如,我每天必须存储 10 行。数量不同。在每一行中,我必须插入成对的信息,就像我在上面发布的那样。对的数量(以数字表示的日期,以数字表示的分数)也取决于日期。
所以,总而言之,我知道我要插入的信息的格式和大小,但我不知道有多少行,也不知道每行的事件数。
代码应该是这样的:
Match 1:
Some scraping to get previous matches.
What I get (date1,score1);(date2;score2);...(daten;Score n)
所以,当我将它存储在 sqlite 中时,我有一个匹配表,获取我刚刚插入的匹配的 id,并在另一个表中存储其他数据。一种可能的解决方案是创建多个列,但我不知道每个匹配有多少列。另一种是创建单个数据列并将所有内容作为文本插入,但我不知道在数百行之后会不会太重。
【问题讨论】:
-
为什么不能使用多列?您想对不起作用的数据进行哪些操作?
-
我可以使用多列,但这是在自动化过程中,有些会有 4 列,其他 16 列,我认为它不会很优雅。如果这是唯一可能的解决方案,我将不得不接受它,但我希望找到不同的东西
-
多列和单个文本列都可以。哪一个效果更好取决于您的应用程序,我们对此一无所知。
-
我编辑了我的操作以添加更多关于我在做什么的信息。多列的问题是每一行都是可变的,自动化它可能会很痛苦。
-
为什么每天多行?有什么区别?
标签: python sqlite database-design