SQLite:为每个日期的多个条目创建表

SQLite: create tables for multiple entries for each date

我是 sql/databases 的超级新手。所以我有很多数据。按日期排序,过去 22 年(~8000 天)的每一天都有多个条目。

我的解决方案是为每个日期创建一个新的 table 并在其中写入条目。 例如

Table - 2020-10-23:

Row1 Row2 Row3 Row4
1 Text Text Text
2 Text Text Text
3 Text Text Text
. . . .
. . . .
1000 Text Text Text

Table - 2020-10-24:

Row1 Row2 Row3 Row4
1 Text Text Text
2 Text Text Text
3 Text Text Text
. . . .
. . . .
1000 Text Text Text

像这样大约有 8000 个这样的 table,每个条目大约有 800 个条目。所以大约有 600 万条条目。

所以我想问的第一件事是这是否是一个可行的解决方案,因为我需要在同一数据库中为用户数据、身份验证等创建更多 tables。

其次,SQLite 是否是适合此目的的数据库。

您不需要为每一天创建 table。您需要查看需要存储的内容。由于您没有提供任何上下文信息,我将只为您提供可以附加到您的实际数据的一般指南。如果事情不清楚,那么您将需要解释您要存储的内容。

因此,作为一般规则,每个实体的任何单个值都被视为 属性 。无论是复合的,都应被视为单独的实体类型。您需要确保您的数据库位于 normal form 中,以防止不一致和冗余。如果您的数据是相互关联的,并且在逻辑上为每条记录描述了一个实体,那么您现在将只有一个 table,还有一个日期字段和一堆其他字段。如果由于不一致和冗余,将所有内容存储到单个 table 中不是一种可行的方法,那么您将需要将 table 分解为更多的 table。

您的图片表明列是行。这可能是计划错误的迹象。

8000 * k(其中 k 平均小于 1 000)记录在现代 RDBMS 工具的情况下并不多。

当您 select 记录时,您可以 filter/group 一天,实现您可以使用不同的 table 实现的行为。

是否使用SQLite由您决定。然而,SQLite 是一个轻量级的 SQL 工具,如果你想成为专业人士,你可能想切换到其他东西,比如 MySQL、Oracle、SQL Server 或PostgreSQL.