Sql server 将示例关系数据模型转换为图形数据模型
我设计了一个关系数据模型和它的图形数据模型。 我想知道我是否以正确的方式完成了它,以及我的图形数据模型是否正确。如果我的模型有任何错误或不明确之处,请留下评论 如图数据模型中所示,有4个标签:Sql server 将示例关系数据模型转换为图形数据模型,sql-server,neo4j,relational-database,data-modeling,graph-databases,Sql Server,Neo4j,Relational Database,Data Modeling,Graph Databases,我设计了一个关系数据模型和它的图形数据模型。 我想知道我是否以正确的方式完成了它,以及我的图形数据模型是否正确。如果我的模型有任何错误或不明确之处,请留下评论 如图数据模型中所示,有4个标签: 公司 使用者 技巧 计划 您可以看到,每个带有标签的节点都有自己的属性,并且连接表被转换为节点之间的关系。 我想知道我应该如何处理像userID或SkillID这样的“主键” 关系数据模型: 图形数据模型: 关于主键问题: 事实上,Neo4j节点和关系有一个内部唯一ID,可以使用以下函数访问: matc
userID
或SkillID
这样的“主键”
关系数据模型:
图形数据模型:
关于主键问题: 事实上,Neo4j节点和关系有一个内部唯一ID,可以使用以下函数访问:
match (d)-[r]-()
return id(d) as nodeId, id(r) as relId
但是,您的应用程序不应该依赖这些ID,因为当删除节点或关系时,Neo4j会重用这些ID。报告说:
当节点和关系被删除时,Neo4j重用其内部ID
删除。这意味着应用程序使用和依赖内部
Neo4j ID易碎或有出错风险。因此
建议使用应用程序生成的ID
更多
所以,如果你真的想要一个主键,我认为你有两个主要的选择:
什么是“用户”?用户就是人。我想我为实体选择了一个错误的名称。我所说的用户是指一个人。我认为“人”是更好的替代品。你的第一个问题可能会产生基于观点的答案。这种问题在StackOverflow是不受欢迎的。但是,乍一看,您的数据模型看起来还不错。但是请记住,在建模图形数据库时,一个好的做法是根据您的查询需求创建模型。因此,在开始建模之前,请考虑您希望向数据库提出的查询。我回答了你关于主键的问题,请看一看。@PTTT也请看一看,谢谢。事实上,我正在做一个关于图形数据库的演示。我想向观众展示一个关系数据模型并运行一些sql查询,然后向他们展示图形数据模型和相同的cql查询。实际上,我尽了最大努力使我的关系模型独一无二,我不想向他们展示已经存在的例子。所以我试着给自己举个例子,然后我使用了一些连接表,这样我就可以用连接进行sql查询,然后比较等效的cql和sql查询。您认为这是一个展示graphdatabase优势的好例子吗?谢谢。如果我们保留主键呢??我的意思是,如果我保留技能id,例如??错了吗?@PTTT不客气!不,没有错。如果您使用GraphAware UUID插件,您可以使用配置参数
com.GraphAware.module.UIDM.uuidProperty
自定义属性名称以存储UUID。