我正在开发一个允许用户通过facebookor注册的应用程序,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)单独存储,我仍然可以使用JOINbetweenuser和查找user_property。 - 我可以检索过于昂贵而无法标准化存储的信息(例如,创建一个表来存储人们的朋友并且每个朋友有一个表条目)仍然具有
JOINbetweenuseranduser_property。
这就是我现在想知道的:
Q1:这可能是一个有点可持续的数据库设计,还是我弄错了会遇到一些问题,如果是这样,哪些问题?
Q2:当存储经常变化的信息(例如朋友/关注者列表)时,您如何保持信息最新(您首先将信息存储在数据库中吗?如果是,那么标准/触发器是什么?您是否使用来决定何时再次提取信息)?