存储间隔重复学习程序的数据。我应该在数据库中使用多个表吗?

时间:2013-03-22 17:48:34

标签: sql database sqlite database-design

我的程序有一个sqlite数据库,它使用了flaschards和SuperMemo2算法。该表目前包含以下字段:

  • id Integer
  • FrontText NVARCHAR
  • ReverseText NVARCHAR
  • eFactor real
  • interval Integer
  • count Integer

我想知道我是否应该将它们分成2个表。我知道将相关数据拆分到自己的表中是件好事。但是,只有5个字段和一个id列的表格仍然值得将它分成2个单独的表,一个用于SuperMemo2(eFactor,间隔和计数),一个用于闪卡卡(frontText,reverseText)?我觉得使用单个表的巨大优势在于它提供了更简单的查询和更简单的解决方案。

我没有太多使用过数据库,所以我在创建/设计它们时,正试图学习什么是好的做法。

1 个答案:

答案 0 :(得分:0)

听起来你可能正在处理的信息比你的表所反映的更多。与算法相关的三个字段特定于用户和卡,但您的表不显示用户字段。

我会设置2个表。

Cards (id, frontText, ReverseText)
SuperMemo2 (id, card_id, user_id, eFactor, interval, count)

卡片表定义了卡片上显示的文本,SuperMemo2表格定义了每个用户卡片组合的算法参数。