【发布时间】:2014-02-04 19:20:07
【问题描述】:
背景:我希望做一个电子表格程序有点像谷歌文档。我目前正处于计划阶段,并且已经意识到,如果一个单元格被更改,那么这可能会影响电子表格中的 1,000 多个其他单元格。我意识到进行 1,000 多个数据库调用会非常慢,因此是不合适的。
我的问题:如何将公式和值之类的信息保存在数据库中并快速进行更改。我能想到的最好方法是将所有 1,000 多个单元格下载为一个大的 JSON 对象,然后上传同样的内容?我无法想象这就是谷歌所做的,因为下载和保存速度如此之快。
有希望的页面包括:
-
http://www.trirand.com/blog/jqgrid/jqgrid.html
和
-
http://www.simple-groupware.de/cms/Spreadsheet/Home
但我还没有找到一个简单的答案来回答我的问题。
除了这些到目前为止我还看过:
- Using formula-based data in Google Spreadsheet as back-end for Web App,
- https://stackoverflow.com/questions/20961510/creating-a-basic-web-app-for-writing-reading-databases-google-spreadsheets
- Spreadsheet like input facility for ASP MVC
- http://www.reddit.com/r/SideProject/comments/1s466o/cellmaster_spreadsheet_formulas_that_build_web/
- Open Source, web based spreadsheet app with formulas
- Store spreadsheet kind of data in SQL Database
- Database : best way to model a spreadsheet。
仅供参考:我在 HTML5/LAMP 堆栈中进行编码,但我很高兴能够以任何形式出现解决方案,因为我总是可以从任何地方“移植”这些想法。到目前为止,我得到的帮助最多的是:
我并不理想主义到期望任何人给我一个具体的代码实现,但我确实相信这个问题不是唯一的,并且 stackoverflow 上的某个人足够聪明,已经制定了一种有效的方法来存储和检索电子表格之类的信息在 Web 应用程序环境中。请直接向我指出正确的方向,我会进行研究以创建自己的解决方案。
【问题讨论】:
-
我的第一个想法是将更改存储到本地存储并最终同步,但我不知道这是否会减少对数据库的调用。我想这取决于你怎么做。无论如何,这个问题在我看来不应该在这里。
-
Thansk @AlejandroIván 这也是我的想法,但这会导致大量下载和上传,因此速度很慢。我还想在客户端计算这些值会很困难,但我愿意就在哪里提出建议。
-
也许在数据库中使用存储过程可以减少网络负载和调用次数。当您插入或修改任何数据时,基本上让数据库进行数学运算,但我真的不是专家。祝你好运!
-
感谢@AlejandroIván,我希望专家准备好分享他们的知识。
标签: mysql spreadsheet