我需要开发一个Web应用程序。 一个网店,在不同的地区销售不同产品的不同产品......
管理员需要修改软件包,而最终用户将无法看到他的修改。只有当管理员发布更改时,最终用户才能看到这些修改。
我的问题是我如何设计数据库(或webapp),以便管理员能够看到应用程序的不同版本(工作版本),而最终用户将看到另一个版本(发布版本)? / p>
我想在每张桌子上添加一个字段'version_id'。 任何的想法?建议?链路?
答案 0 :(得分:0)
我将预发布版本存储在一个单独的表中,然后在管理员发布时更新“实时”表。
通过这种方式,您可以将经常读取的表格中的行数(实时表格)保留下来,这将减少开销 - 如果是网上商店,只要有人访问该页面,就会读取实时表格。
如果您正在使用MySQL,您还可以优化这两个表,以便实时版本使用MyISAM(松散地说)更好地进行繁重的读取操作,并将admin预发布表作为InnoDB表; InnoDB(再次松散地说)在重写操作上表现更好。该预发布表只能由极少数(甚至一个)用户一次访问(admin / s),但在发布之前可能会经常更新,因为他们意识到他们会拼错并改变它。
如果您想要整合完整版本的历史记录,那么您肯定需要一个单独的表格,因为您最终会在表格中使用许多更多的预发布版本而不是实时版本。