我知道它是一个非关系型数据库,但这并不意味着关系数据不存在。
例如,我有一个表格可以保存这样的网址(简化):
url | domain
我有一个表格,其中包含这样的域名(简化):
domain | favicon_path
由于许多不同的网址可能具有相同的域名,因此在拉取数据以便发送到视图时,我不想为每个域重复favicon_path。
因此,当我需要数据时,我使用了一个简单的(例如简化的)join命令。
"SELECT bookmarks.*, domains.favicon FROM bookmarks JOIN
domains ON bookmarks.domain=domains.domain"
如何使用no-sql处理这种情况?
我打算在客户端(javascript)上使用indexedDB
和在服务器上使用MongoDB
来实现no-sql(java)。
答案 0 :(得分:0)
如果要使用面向文档的数据库,可以使用此文档结构:
URL_ID:{ “域”:“id_of_domain” “another_staff”:“......” } 强>
DOMAIN_ID:{ “favicon_path”:“另一个文档的路径或ID”, “another_staff”:“......” } 强>
因此,您可以从数据库获取ID为URL_ID的文档,然后获取Domain类型的文档。
<强>此外:强> 您可以使用以下方法生成ID。创建只有一个字段的特殊文档(如序列) - current_value_of_sequence。每次插入DB都必须得到这个序列并递增它。像Couchbase这样的一些数据库对这种机制有低级支持,这非常有效且线程安全。
答案 1 :(得分:0)