2012-02-20 33 views
0

我正在嘗試開發一個小應用程序,它將在mySQL數據庫中存儲有關視頻的用戶輸入。問題是我希望用戶爲添加的每個視頻都有一個mySQL表。Ruby on Rails關於用戶輸入和mySQL的建議

所以我的做法是有點這樣一個

class User < ActiveRecord::Base 

    has_many :Videos 

end 

例子:網絡應用程序將收集用戶的56個輸入視頻23和執行的MySQL查詢「INSERT INTO video_23_info VALUES ...

每次我添加一個新的視頻到數據庫我想要一個表與用戶關聯

我不知道我的方法是否正確我首先想到的只是使用文本文件並將它們存儲在服務器上,到一個單獨的文件夾或每個用戶,而不是usi ng MySQL。 有什麼幫助嗎?

回答

1

爲每個用戶設置一個不同的表格將是錯誤的和不好的做法。

您可以改爲創建一個表videos,並保持所有影片有:

你的表可分辨出誰通過用戶ID欄即上傳的每個視頻:

video_id | user_id | other info 
-------------------------------- 
    1  100   
    2  200   
    3  100   

那麼你就可以查詢該表選擇所有視頻,單獨選擇一個特定的用戶視頻或任何你想象中的東西。

然後你就可以代替使用table_100爲用戶的視頻,只需使用WHERE user_id = 100在您的查詢,只得到該用戶的視頻

+0

thx re file! mallon etsi ena到kamw – 2012-02-20 13:40:20

+0

Tipote nase kala。 O allos eklepse mou kai ton pinaka kai edokes tou tin sosti apantisi? :P – Kypros 2012-02-20 18:56:39

+0

hhhaha對不起ida! – 2012-02-27 10:57:50

1

你的方法看起來不對。數據庫通常用於保存具有相同特徵的許多記錄。所以你應該有兩個表格,一個用於用戶,另一個用於視頻。爲什麼你需要每個視頻的表格?

1

所以問題弄得我一點點。我收集到你希望用戶輸入關於視頻的信息(意味着每個視頻可以有來自不同用戶的多個輸入?)。如果是這種情況,那麼這種方法不是很有效。您仍然可以擁有包含視頻信息的視頻表(包括誰上傳了視頻信息,如果需要的話)以及包含用戶數據的用戶表。然後你可以有第三個表來存儲來自不同用戶的所有輸入。

video_id | user_id | comment 
     1   1  loved it 
     1   2  user2 input 
     2   1  user1 input 

class User < ActiveRecord::Base 
    has_many :comments 
    has_many :videos 
end 

class Video < ActiveRecord::Base 
    has_many :comments 
    belongs_to :user 
end 

class Comment < ActiveRecord::Base 
    belongs_to :user, :video 
end 

這種方式,你可以有從視頻用戶以及具有用戶頁面上的所有用戶的評論和用戶視頻上傳的所有視頻評論。這可以與上面的示例一起使用,併爲您提供顯示數據的很多靈活性。

+0

我並不關心誰上傳了它。這是一個簡單的方法謝謝。所以用戶,視頻和評論應該都是模型的權利? – 2012-02-20 13:42:34

+0

是的,他們都應該是models.If你不在乎誰上傳它可以取消用戶和視頻之間的關係。 – jeffbricco 2012-02-20 16:31:52