我正在尝试开发一个小应用程序,它将用户在mySQL数据库中输入有关视频的信息。问题是我希望用户为每个添加的视频都有一个mySQL表。
所以我的方法有点像这个
class User < ActiveRecord::Base
has_many :Videos
end
示例:Web应用程序将收集用户56的视频输入23并执行mySQL查询“INSERT INTO video_23_info VALUES ...
每次我向数据库添加新视频时,我都希望将一个表与用户关联。
我不知道我的方法是否正确。我首先想到的只是使用文本文件,并将它们存储在服务器上,放在一个单独的文件夹或每个用户中,而不是使用MySQL。 有什么帮助吗?
答案 0 :(得分:1)
你的方法似乎错了。数据库通常用于保存具有相同特征的许多记录。所以你应该有两个表,一个用于用户,一个用于视频。为什么每个视频都需要一个表格?
答案 1 :(得分:1)
为每个用户设置不同的表是错误的,也是不好的做法。
您可以创建一个表videos
并将所有视频保留在那里:
您的表格可以区分通过用户ID列上传每个视频的人,即:
video_id | user_id | other info
--------------------------------
1 100
2 200
3 100
因此,您可以查询表格,选择所有视频,单独选择特定用户视频或您想象中可以提供的任何内容。
然后,您可以使用table_100
代替用户的视频,只需在查询中使用WHERE user_id = 100
,只能获取该用户的视频
答案 2 :(得分: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
通过这种方式,您可以在视频中获得用户的所有视频评论,并在用户页面上显示所有用户评论,并上传用户视频。这适用于上面的示例,为您提供了显示数据的灵活性。