我目前正在参与一个应用项目,而且我已经开始设置后端了 我使用的是一个MYSQL数据库+ php来清理和管理前端来回发送的数据,我有更多的经验。但是,由于我的老板的某些偏好,在这个项目上我'我发现自己正在寻找IBM的Bluemix和Cloudant软件。 Cloudant是一个NoSQL数据库(如CouchDB),我对noSQL的经验非常缺乏。到目前为止,我所做的就是创建一些JSON文档和一些基本视图
我需要弄清楚如何在NoSQL数据库上执行CRUD(创建,读取,更新,删除)操作,或者至少是它的样子。
除此之外,我需要知道是否有方法在没有外部源的情况下在NoSQL数据库上实施安全措施(实现安全性和反黑客功能),或者我是否需要学习如何重新路由数据某种PHP函数首先,如果我想要它清理,然后发送到我的数据库所在的Cloudant服务器。
如果我解释我的问题的尝试缺乏清晰度,请告诉我。如果需要的话,我会尽力说出不同的方式。
答案 0 :(得分:0)
一般来说,没有任何东西相当于ANSI到NoSQL数据库。换句话说,NoSQL数据库不像SQL数据库那样标准化。所有标准都开始出现。您可以将其视为一种仍在制作中的技术。
您通常使用的方法是使用put_record
或delete_record
等方法的API,或者逻辑上等效的REST接口。此外,一般来说,你CRUD整个记录,而不是记录的一部分。
查看参考资料:Cloudant - Reading and Writing
说到这一点,在你的情况下,如果你关心避免供应商锁定,我会建议从你想要使用的NoSQL的具体实现中抽象出来。所以我建议你使用PHP函数包装CRUD函数,如果你想改变NoSQL数据库的味道,以后可以替换它们。
此方法还有一个额外的好处,即为您提供实现自己安全性的抽象。一些重要的NoSQL数据库没有多租户的概念或只是实现了。同样,这是一项正在制定的技术。
当您的思维模式是关系思维模式时,您倾向于将数据库视为可以帮助您尽可能保证数据一致性的东西。但NoSQL数据库不是那样的。将它们视为一个简单的文档存储库(例如,在JSON或XML结构中),没有交叉引用。
然后显而易见的问题可能是:为什么有人想要这样的事情?其中一个可能的答案是因为NoSQL数据库可能包含合并数据的集合。然后,您可以检索聚合以节省不必要地重新处理或重新检索数据的时间。
至于安全性,大多数(如果不是全部)NoSQL数据库都有一些非常好的身份验证机制。