我有一个包含两个组件的项目,一个服务器端组件和一个客户端组件。由于各种原因,客户端设备没有携带数据库的完整副本。
我的模型在两侧之间具有 1:1 的相关性有多重要?而且,把这个问题延伸到我更关心的问题上,如果他们不这样做,我是否会遇到任何定时炸弹?我不是在谈论在每一方都有不同的信息,而是信息的封装方式会有所不同。(显然,存储机制也会有所不同)服务器端将使用单独的表格存储每个用户、每个评论、每个“项目”,并在它们之间创建链接以在必要时收集数据。然而,客户端不应该有一个完整的用户数据库,所以与其链接用户来收集像“名字”这样的东西,我会把它存储在评论中。换句话说...
- - 服务器端 - -
Item: +id //存储关于item的东西
用户:+id +姓名 -密码
评论:+id +itemId +rating +text +userId
--- 设备端 ---
项目:+id +AverageRating
评论:+id +rating +text +userId +name
用户:+id +Name //东西
基本思想是将某些“关键”信息“向上”移动一级。用户获得与其查询相关的“项目”列表,其中某些面向评论的信息上移(即平均评分)。如果他们想要更多信息,他们会查询项目的详细视图,然后查询实际评论并将其添加到数据集(并显示)。如果他们查询实际评论,则会查询评论并在此过程中获取一些额外的用户信息(也许;我不确定用户是否会对任何其他用户信息有任何用途)。
我的基本担忧是,我不想让用户的带宽或本地存储充斥着他们根本不需要的大量信息,即使适当的数据库规范化表明信息真的应该存储在“较低的' 等级。
我将其表述为一个相当低级别的概念问题,因为这是我试图思考/担心的级别,但如果重要的话,我正在创建一个为 iOS / CoreData 客户端提供数据的 PHP / MySQL 服务器。