我可以让 Google Drive 电子表格像 MySQL 数据库一样工作吗?
Posted
技术标签:
【中文标题】我可以让 Google Drive 电子表格像 MySQL 数据库一样工作吗?【英文标题】:Can I make Google Drive Spreadsheets act like a MySQL database? 【发布时间】:2013-04-05 20:02:57 【问题描述】:我可以像使用(类似于)mysql 数据库一样使用 Google Drive 电子表格吗?
我正在考虑将其用作 html/javascript 网页游戏的玩家数据库。玩家的用户名、密码和分数等将保存在数据库中。如果它真的可以工作,那将非常有趣,但是它当然必须是安全和私密的,这样除了电子表格的所有者(例如我)之外,没有玩家(或互联网上的任何人)可以访问它.
我知道 Google Apps 脚本允许用户访问他们自己的电子表格并对其进行读/写,但是有没有一种方法可以让其他用户在我的电子表格中“保存他们的分数”而不授予他们查看权限/直接编辑电子表格?
另外,我假设必须使用 php/Python/其他一些服务器端语言来隐藏我的帐户信息,我还假设需要这些信息来打开和关闭与我的电子表格的连接。
无论如何,我只是想知道这是否可行。实际上将 Google Drive 电子表格变成了一个数据库,玩家可以更新他们的分数,但不能直接访问它。
这可能是一个愚蠢的想法,所以欢迎你的意见!
提前致谢!
【问题讨论】:
为什么要将数据存储在 Google 电子表格中?最好的 MySQL 模拟器是 MySQL 本身。 Google 将其作为服务提供:Cloud SQL:developers.google.com/cloud-sql Google 还提供 App Engine,它有自己的数据库,称为 Datastore:developers.google.com/appengine/docs/python/datastore 它接受一些类似 SQL 的查询。 另外,如果您必须为此使用 Apps Script,可以使用 ScriptDB 进行存储。 @allyourcode 我只是对探索这种可能性感兴趣。感谢您的链接,我没有意识到 CloudSQL 的存在! @Frederic 是的,但是用户是否有可能通过 javascript 访问 ScriptDB 并能够查看表并因此查看每个人的密码? @Jacob 我想你可以试着用生意大利面做一辆自行车,但为什么呢?意大利面条不适合那种东西。坚持使用更合理的材料,如铝。 【参考方案1】:This is the right way to do it. Another post 解释同样的想法。 本质上,我们发布电子表格并使用类似“选择”的语法对其进行查询。例如: this query 内容如下:
https://spreadsheets.google.com/tq?tqx=out:html&tq=select+B,C,I&key=phNtm3LmDZEObQ2itmSqHIA
这是用于查询数据(读取)。对于插入,您可以使用 google 表单(创建一个表单,查看其 html 并使用 http post 请求提交)。我还没有探索更新。
是的,这必须在服务器端完成。
【讨论】:
【参考方案2】:回答说您需要额外的服务器或 oauth 不正确。 只需使用您的权限发布一个 appscript(匿名公共)服务。对于所有操作,始终传递用户名和密码,因此您可以在每次调用时验证用户。使用 ajax 从客户端 js 调用服务。 将其存储在 scriptdb [更新:scriptDb 现已弃用]。如果您使用电子表格进行存储,它会因行数过多而变慢。
无论如何,如果你使用 appscript,它会很慢。
【讨论】:
好的,所以这不是它能否工作的问题,更像是它与实际 MySQL 数据库相比有多快的问题。 Ss 存储速度慢。除非您使用 urlfetch 使用查询提要,否则搜索也会很慢。无论如何mysql都会比msgnitude快几倍。 Scriptdb 会比 ss 好。 Mysql 最好,但从 appscript 调用很慢。【参考方案3】:如果没有为客户端库实现另一个身份验证层并使用 Google 身份验证与云端硬盘对话的服务器端服务,这是不可能的。
【讨论】:
以上是关于我可以让 Google Drive 电子表格像 MySQL 数据库一样工作吗?的主要内容,如果未能解决你的问题,请参考以下文章
无法打开 Google xlsx 电子表格/Google Drive 权限也被阻止
在 Google Drive 中使用 Google Spreadsheets API 创建电子表格
使用 google drive API 下载 csv 格式的电子表格
Google Drive Picker ViewId.SPREADSHEET显示电子表格和表单