我有我想轉換到NoSQL的一個(我目前使用RavenDB)建模的NoSQL數據庫(從SQL數據庫轉換時)
這裏是我的表SQL數據庫:
跟蹤:
ID (PK, bigint, not null)
DeploymentID (FK, int, not null)
AppCode (int, not null)
部署:
DeploymentID (PK, int, not null)
DeploymentVersion (varchar(10), not null)
DeploymentName (nvarchar(max), not null)
應用:
AppID (PK, int, not null)
AppName (nvarchar(max), not null)
目前,我有我的表這些行:
跟蹤:
ID: 1 , DeploymentID: 1, AppCode: 1
ID: 2 , DeploymentID: 1, AppCode: 2
ID: 3 , DeploymentID: 1, AppCode: 3
ID: 3 , DeploymentID: 2, AppCode: 1
部署:
DeploymentID: 1 , DeploymentVersion: 1.0, DeploymentName: "Test1"
DeploymentID: 2 , DeploymentVersion: 1.0, DeploymentName: "Test2"
應用:
AppID: 1 , AppName: "Test1"
AppID: 2 , AppName: "Test2"
AppID: 3 , AppName: "Test3"
我的問題是:如何構建我的NoSQL文檔模型?
如果它看起來像:
trace/1
{
"Deployment": [ { "DeploymentVersion": "1.0", "DeploymentName": "Test1" } ],
"Application": "Test1"
}
trace/2
{
"Deployment": [ { "DeploymentVersion": "1.0", "DeploymentName": "Test1" } ],
"Application": "Test2"
}
trace/3
{
"Deployment": [ { "DeploymentVersion": "1.0", "DeploymentName": "Test1" } ],
"Application": "Test3"
}
trace/4
{
"Deployment": [ { "DeploymentVersion": "1.0", "DeploymentName": "Test2" } ],
"Application": "Test1"
}
而如果部署1得到改變?我應該按照每個文檔去更改數據嗎?
何時應該在NoSQL中使用引用?
[「NoSQL」](http://en.wikipedia.org/wiki/Nosql)不是數據庫 - 它是一個通用術語適用於不使用SQL的數據庫。這包括鍵值存儲,文檔數據庫,圖形數據庫等。如何爲數據建模依賴於您的用例以及您正在使用的數據庫中可用的功能。 – Stennie 2013-05-02 12:56:14
我寫過我使用的是RavenDB,它是一個文檔db – ohadinho 2013-05-02 13:05:35