2010-06-23 53 views
0

我正在使用mvc,mongodb和asp.net成員構建一個庫。MongoDB,.NET MVC

當用戶瀏覽登錄的網站(登出時自動設置爲預覽),我需要檢查他們是否購買了當前的電影,如果他們有,他們可以看到全套功能,否則他們必須購買視頻或觀看預覽。

我有以下電影模式:

public Guid Id { get; set; } 
public string Slug { get; set; } 
public string Title { get; set; } 
public string Description { get; set; } 
public double Price { get; set; } 
public string PreviewUrl { get; set; } 
public string MovieUrl { get; set; } 
public DateTime CreatedOn { get; set; } 
public string CreatedBy { get; set; } 
public DateTime ModifiedOn { get; set; } 

public IEnumerable<User> Users; 

public Movie() { 
    Id = Guid.NewGuid(); 
    CreatedOn = DateTime.Now; 
    ModifiedOn = DateTime.Now; 
} 

也許有更好的方法來處理這個。也許是訂單或其他?

+0

出於興趣可以請TE我們爲什麼決定使用MongoDB? – Roman 2010-06-23 12:16:33

回答

0

我將提出一個非常基本的解決方案。假設你跟蹤數據庫中某個地方的購買情況(不管是否使用MongoDB),你可以編寫一個例程,查詢用戶的id和電影的id。所以基本上你一直跟蹤誰已經購買了什麼從而使自己知道,如果一個人已經購買了使用上的簡單查詢電影的能力,我像波紋管所示:

採購表:

RecordID UserID MovieID 
1   10  233 
2   89  720 

查詢

db.purchases.find({'UserId': 10}, {'MovieID' : 233}) 

應該返回

RecordID UserID MovieID 
1   10  233  
+0

這不會破壞mongodb的目的,但代表RDBMS? – 2010-06-23 12:19:29

+0

@Daniel Draper,IMO MongoDB不僅僅是對數據進行規範化。實際上,通過犧牲RDBMS系統的ACID屬性,無需預定義的定義,即可快速輕鬆地存儲大量數據。然而,他確實可以簡單地將UserIds與電影記錄保持一致,而不像RDBMS那樣。 – Roman 2010-06-23 12:27:27