我一直在試圖讓Azure Table中存儲的一點點把握好一段時間了,雖然我知道它通常是如何工作的,我真的很努力動搖我的關係型數據庫的思維。我通常通過示例學習最好,所以我想知道如果有人能幫助我。我將簡要介紹一下如何使用關係數據庫解決問題的簡單設置,有人可以幫助指導我將其轉換爲使用Azure表存儲嗎?如何擺動關係數據庫思維來設計一個天藍色的表存儲數據存儲?
比方說,我有簡單的筆記應用程序,它擁有用戶和他們希望每個用戶可以有許多的筆記,每一個音符可以有很多用戶(業主或觀衆),因爲它需要。如果我打算使用關係數據庫來部署這個如下我可能會部署:
對於數據庫,我會像這樣的東西開始:
CREATE TABLE [dbo].[Users](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Username] [nvarchar](20) NOT NULL)
CREATE TABLE [dbo].[UsersNotes](
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserID] [int] NOT NULL,
[NoteID] [int] NOT NULL)
CREATE TABLE [dbo].[Notes](
[ID] [int] IDENTITY(1,1) NOT NULL,
[NoteData] [nvarchar](max) NULL)
然後,我會設置之間的關係Users.ID and UsersNotes.UserID
以及Notes.ID and UsersNotes.NoteID
與約束來實施參照完整性。
對於應用程序,我將有一個ORM產生一些實體與各個匹配名稱屬性,我可能會收工:
public class Users
{
public int ID { get; set; }
public String Username { get; set; }
}
// and so on and so forth
我認識到,這樣的設計是完全依賴在關係型數據庫上,我正在尋找的是一些關於如何擺脫使用Azure Table存儲或任何其他非關係數據存儲技術的思路的建議。
爲了爭辯的緣故,我們也假定我已經安裝了Azure SDK並且已經玩過了,但是我對使用SDK的工作知識是有限的,我寧願不專注於此,而寧願上面的一個好的解決方案是什麼樣的。一個好的起點將有助於使SDK對我有意義,因爲我將有一個參考點。
爲了完整起見,可以說
- 注意數據會經常更改首次創建時,並逐漸減少隨着時間的推移
- 用戶將有許多筆記和筆記可以有多個用戶(未同時,只要觀衆)
- 我期望相當一些用戶(低幾百個),但我希望有相當數量的音符(數百低,每用戶)
- 我希望對查詢
Username
最多,然後顯示的音符用戶有權訪問 - 觀看時注意,顯示其他用戶訪問這一點,反向查找
我得到的問題是「如何」,但我的問題是「爲什麼」?你是否在SQL Azure中定價? 1 TB的日誌文件是ATS。 10 GB的關係是SQL。在之間進一步分析。但10 GB的關係數據是很多的。 – Paparazzi 2012-08-01 23:01:48
@Blam我對學習練習以及成本感興趣。 – Nate 2012-08-02 00:01:30
酷,但是SO是針對特定的編程問題。如果你想了解有很多書籍和在線資料。 – Paparazzi 2012-08-02 02:17:44