我的任务是在开发中创建当前rails web应用程序的数据库图表。我已经在rails应用程序中创建了几个关系。
belongs_to :company
has_many :users
我使用了MySQL Workbench EER Diagram工具。当我拉入Company表和User表时,MySQL不理解两个表之间存在关系。
我想知道MySQL是否存在性能影响而没有创建关系。
有没有办法在rails中生成迁移,在MySQL中创建这种关系?
答案 0 :(得分:2)
要解决当前创建数据库图表的任务,可以使用rdnewman建议的Rails gem。只需按照以下链接中的步骤操作:
http://rails-erd.rubyforge.org/install.html
回答你的另外两个问题:
MySQL中没有问题。问题是MySQL Workbench需要外键来创建表之间的关系。您可以自己执行此操作,例如,将Post模型中的user_id
属性设置为posts
表中的外键。 Rails所做的是它加载你的Active Record模型并处理它们的所有属性和关联(has_one,has_many,belongs_to等),并将它组合成一个图表。
为了在MySQL中显示此关系,您需要在模型上创建foreign_keys。但是,Rails的默认行为是用于在模型上保存外键的列是添加了后缀_id的关联的名称。 :foreign_key选项允许您直接设置外键的名称。
您可以在此Association Basics Guide for Rails找到更多信息。