如何在我的应用程序中组织SQLite DB

时间:2013-10-23 05:40:47

标签: android mysql sql sqlite

此时我有一个用户表,其中包含以下字段“ 身份证,姓名,电子邮件,性别,密码和头像。

现在,这些用户将拥有物品,将会去地方,会有朋友并会做一些动作。将有关于他们活动的统计数据。

我应该存储这些操作的引用(以及相应的统计信息)并将操作本身存储在其他表中,还是应该向此表中添加更多字段?

例如, 签到,跟随,朋友 - 这些应该在另一张桌子上吗?

活动怎么样?

有人是另一个人的朋友。 有人跟随另一个人。 现在有人有某种地位。

这些是否应该存储在一个表中,其中包含时间戳和与之相关的相应操作(有人喜欢这篇文章,评论等)

1 个答案:

答案 0 :(得分:0)

经过一番阅读并在这里询问我的结论是什么:

每种类型对象的表格: 用户 项目 地方

每个对象的附加数据表: 用户信息,操作 项目信息 地点信息

每种操作或事件的表格 的喜好 以下 友谊

事件表

event_id,event_type,parameter1,参数2,参数3,参数4 *(* 检查以下注释 *

活动喜欢的表格 event_id,person_id

用于事件评论的表格 event_id,person_id,comment_text

如果用户的邮箱中有13封邮件,其中8封邮件已被阅读,则在邮件表中,这将是一个布尔值"读取"。

到目前为止看起来还不错吗?

如果我想要统计数据,我不会将它们存储在记录中,我将计算某些查询的结果数量,例如:

用户Kylie有14个关注者,因为这是此用户查询表格后返回的行数

注意:唯一困扰我的是事件表,因为不同类型的事件需要不同的参数,例如

事件类型友谊需要两个用户' IDS。 事件类型购买需要用户和产品ID。

所以我可以将所有事件存储在一个表中,还是应该为每个事件类型创建多个表?

PS:在我实现它们之前,我使用umlet来布局设计和表之间的关系