我正在开发一个允许用户通过facebook
or注册的应用程序,twitter
我希望能够使用来自这些网站的个人数据,并想知道我应该如何存储它。到目前为止,这是我想出的:
该user
表将存储无论用户如何注册都应该存在的信息,例如first_name
.
该user_property
表将用作key-value
缓存并存储特定于facebook
或twitter
(由origin
字段表示)的信息。我将存储可单独用作API
调用或SQL
查询的一部分的属性,例如 users' facebook id
,我将存储API
以格式序列化的其他调用的结果JSON
,例如 users' facebook friends
。
那样:
- 我在表格中有共同的信息,
user
通过一个单一的信息,SELECT
我可以获得一些关于用户的基本有用信息 - 我有一些额外的属性来自
facebook/twitter
(例如用户 ID)单独存储,我仍然可以使用JOIN
betweenuser
和查找user_property
。 - 我可以检索过于昂贵而无法标准化存储的信息(例如,创建一个表来存储人们的朋友并且每个朋友有一个表条目)仍然具有
JOIN
betweenuser
anduser_property
。
这就是我现在想知道的:
Q1:这可能是一个有点可持续的数据库设计,还是我弄错了会遇到一些问题,如果是这样,哪些问题?
Q2:当存储经常变化的信息(例如朋友/关注者列表)时,您如何保持信息最新(您首先将信息存储在数据库中吗?如果是,那么标准/触发器是什么?您是否使用来决定何时再次提取信息)?