我是一个 ruby 爱好者,完全没有与数据库相关的经验。我正在编写一个应用程序,该应用程序将在 SQLite3 数据库中收集和备份推文和博客文章(通过 rss 提要)。
第一个版本只支持备份特定用户的推文,因为我想为我的 twitter 帐户创建备份。所以 SQLite3 模式很简单:1 个数据库,每个用户 1 个表。
现在我想为以下内容添加备份支持:基于位置的推文(即来自德国的推文)、基于用户名的推文和基于主题标签的推文以及支持 RSS 提要。
由于 SQLite3 不支持任何类型的子表,并且我想创建一个在我开始测试时不需要更改的模式,我想就如何处理这个问题发表意见。
我在网上阅读了很多关于 SQL 数据库设计的文章或文章,还找到了几本书。还没有购买任何东西,我只是在考虑阅读有关 db 设计的一些基础知识,因为我不需要一本广泛的书,只是我正在评估的介绍。我不确定这些文章是否让我更加困惑。
我想出的 db 模式是一个 INDEX 表,其中将保存用户的信息,然后每个用户的每个选项都有一个表,例如:
? lib git:(dev) ? cat sqlite_scheme.txt
SQLite3 Table Scheme
MRParent
--------
db_key
table_id
twitter_id
twitter_option {what and how}
feed_url
short_description
MRChild-id-tweet-usr
---------
db_key
tweet_id {from MRParent}
table_id
tweet_date
tweet_location
tweet_text
MRChild-id-tweet-location
-------------------------
db_key
table_id {from MRParent}
tweet_id
tweet_date
tweet_location
tweet_text
MRChild-id-tweet-hashtag
------------------------
db_key
table_id {from MRParent}
tweet_hashtag
tweet_id
tweet_date …
Run Code Online (Sandbox Code Playgroud)