Tag: 数据库关系

在Ruby ActiveRecord模型中级联删除?

我正在关注rubyonrails.org上的截屏(创build博客)。 我有以下型号: comment.rb class Comment < ActiveRecord::Base belongs_to :post validates_presence_of :body # I added this end post.rb class Post < ActiveRecord::Base validates_presence_of :body, :title has_many :comments end 模型之间的关系正常工作,除了一件事情 – 当我删除一个postlogging,我希望RoR删除所有相关的评论logging。 我知道ActiveRecords是独立于数据库的,所以没有内build的方法来创build外键,关系,ON DELETE,ON UPDATE语句。 那么,有没有办法做到这一点(也许RoR本身可以照顾删除相关的评论?)?

你如何跟踪NoSQL中的logging关系?

我试图找出在NoSQL KVP或文档数据库中的外键和索引的等价物。 由于没有关键表(要添加标记两个对象之间的关系的键),所以我非常难以确定如何以一种对普通网页有用的方式检索数据。 假设我有一个用户,并且这个用户在整个网站上留下了很多评论。 我能想到跟踪用户评论的唯一方法是 将它们embedded到用户对象中(这似乎很无用) 创build并维护一个user_id:comments值,其中包含每个评论的关键字列表[评论:34,评论:197等],以便我可以根据需要获取它们。 然而,拿第二个例子来说,当你用它来跟踪其他东西,比如一个叫做“active_comments”的键时,你可能很快就会碰到一堵砖墙,这个键可能包含了三千万个ID,使得查询每个页面只是为了了解一些最近的东西积极的评论。 它也会很容易出现竞争状况,因为许多页面可能会尝试同时更新它。 如何在NoSQL数据库中跟踪以下关系? 所有用户的评论 所有活跃的评论 所有标有[关键字] 所有在俱乐部的学生 – 或者所有学生所在的俱乐部都在 还是我错误地想这个?

在rails中使用has_one关联构build

在这个例子中,我创build了一个没有profile的user ,然后为这个用户创build一个profile 。 我尝试使用has_one关联构build,但是被炸毁了。 我看到这个工作的唯一方法是使用has_many 。 user应该只有最多一个profile 。 我一直在尝试这个。 我有: class User < ActiveRecord::Base has_one :profile end class Profile < ActiveRecord::Base belongs_to :user end 但是当我这样做: user.build_profile 我得到的错误: ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'profiles.user_id' in 'where clause': SELECT * FROM `profiles` WHERE (`profiles`.user_id = 4) LIMIT 1 有轨道有0或1协会的方式吗?