Php 通知管理应用程序的NoSQL数据库设计问题?

Php 通知管理应用程序的NoSQL数据库设计问题?,php,database-design,nosql,Php,Database Design,Nosql,我正在尝试在NoSQL中创建一个数据库,用于学习 它是PHP中一个简单的通知管理(从通知栏添加/编辑/删除通知)应用程序 我有Memcached(实际上是Membase),可以将数据存储为键值对 为了添加通知,我将生成一个唯一id{usinguniqueid()function},并在其中存储通知细节。但问题是,, 1。如何列出所有通知? 我还想在通知中添加序列密钥。为此,我需要知道上次插入数据的串行密钥2。如何查找上次插入的通知? 如果发现这个问题不合适,因为这是一个关系数据模型(或者你可能会

我正在尝试在NoSQL中创建一个数据库,用于学习

它是PHP中一个简单的通知管理(从通知栏添加/编辑/删除通知)应用程序
我有Memcached(实际上是Membase),可以将数据存储为键值对

为了添加通知,我将生成一个唯一id{usinguniqueid()function},并在其中存储通知细节。但问题是,, 1。如何列出所有通知?

我还想在通知中添加序列密钥。为此,我需要知道上次插入数据的串行密钥2。如何查找上次插入的通知?


如果发现这个问题不合适,因为这是一个关系数据模型(或者你可能会说,它应该在关系数据库中实现),请告诉我任何可以使用NoSQL了解更多信息的用例场景。

实体之间的自然连接是关系型的,因此每个数据模型都是使用关系模式精心设计的。几乎每个nosql模式都可以用关系数据模型表示

在使用标准关系模型不舒服的地方使用NoSQL(例如,当外部组件需要添加它们自己的数据而您事先不知道时),或者需要更好的性能和可伸缩性-然后在NoSQL模式中对数据进行非规范化

蒙哥达(http://www.mongodb.org/)是NoSQL数据的良好起点,因为它允许您将非规范化模式与(几乎)关系设计相结合

很好的用例是实现自定义表单数据存储的数据模型,其中字段的数量和类型预先未知

关于你的问题:

  • 我不太了解membase,但如果它是一个简单的键值存储,唯一的解决方案是创建另一个键值,在该键值上存储所有id的列表,但并发更新是一个大问题
  • 您还可以将最后一个插入id存储在其他位置(在其他键处)——在这里,并发更新更容易掌握

  • 关于NoSQL,首先要了解的是有很多NoSQL解决方案,它们具有不同的功能。你需要选择一个最合适的。在这种情况下,Redis将通过您选择的设计使您的生活更加轻松

    这一问题的核心是解决方案。许多NoSQL解决方案故意选择而不是保证一致性。一旦你把它扔掉,你就不能保证同一个身份证不会被分发两次。因此,使用时间戳或使用其他东西(如Redis)生成唯一的ID是有意义的,您可以将其存储在任何您想要的地方