Java sql如何处理关系数据?

Java sql如何处理关系数据?,java,javascript,sql,nosql,Java,Javascript,Sql,Nosql,我知道它是一个非关系数据库,但这并不意味着关系数据不存在 例如,我有一个表,其中包含如下URL(简化): 我有一个表,其中包含这样的域(简化): 因为许多不同的URL可能具有相同的域,所以在提取数据以发送到视图时,我不想为每个域重复favicon_路径 因此,当我需要数据时,我使用了一个简单的(例如简化的)join命令 "SELECT bookmarks.*, domains.favicon FROM bookmarks JOIN domains ON bookmarks.domain=d

我知道它是一个非关系数据库,但这并不意味着关系数据不存在

例如,我有一个表,其中包含如下URL(简化):

我有一个表,其中包含这样的域(简化):

因为许多不同的URL可能具有相同的域,所以在提取数据以发送到视图时,我不想为每个域重复favicon_路径

因此,当我需要数据时,我使用了一个简单的(例如简化的)join命令

"SELECT bookmarks.*, domains.favicon FROM bookmarks JOIN 
  domains ON bookmarks.domain=domains.domain"
如果不使用sql,我将如何处理这种情况


我计划在客户端(javascript)上使用
indexedDB
,在服务器(java)上使用
MongoDB
实现无sql。

如果您想使用面向文档的数据库,可以使用以下文档结构:

URL\u ID:{ “域”:“域的id”, “另一个工作人员”:“…” }

域ID:{ “favicon_路径”:“另一文档的路径或id”, “另一个工作人员”:“…” }

所以,您可以从数据库中按ID获取具有URL_ID的文档,然后获取域类型的文档

添加:
您可以使用以下方法生成id。创建只有一个字段的特殊文档(如序列)——序列的当前值。每次插入数据库时,您都必须获得该序列并将其递增。一些数据库(如Couchbase)对这种机制提供了低级支持,这种机制非常高效且线程安全。

根据多年在IT领域的工作经验,我认为大多数业务模型都可以规范化,就像这两种数据结构一样简单:

  • 实体信息
  • 实体列表
  • 例如,在书店业务中,我们将拥有book实体和许多包含所有书籍或整个书籍子集的列表


    对于NoSQL数据库,例如or,图书实体存储有键值,其中键是图书序列号,值是经过字符串化的图书信息(标题、出版日期、描述等)。而图书列表(按出版日期列出、按价格列出等)存储在zset数据类型中。

    您所说的“员工”是什么意思。。。这是“财产”的同义词吗?对不起,是俚语。我指的是对象的另一个字段,或者在关系数据库中指的是表的另一列(因为面向文档的数据库中的文档类似于关系数据库中的行)。sql不能处理id生成,它能扩展我从mysql传入的id吗?在大多数情况下,数据库之间的传输由您自己完成,实际上,这并不难。
    domain | favicon_path
    
    "SELECT bookmarks.*, domains.favicon FROM bookmarks JOIN 
      domains ON bookmarks.domain=domains.domain"