MySQL WorkBench增强了与Rails关系的实体关系

时间:2014-03-28 14:01:44

标签: mysql ruby-on-rails associations entity-relationship

我的任务是在开发中创建当前rails web应用程序的数据库图表。我已经在rails应用程序中创建了几个关系。

  belongs_to :company

  has_many :users

我使用了MySQL Workbench EER Diagram工具。当我拉入Company表和User表时,MySQL不理解两个表之间存在关系。

  1. 我想知道MySQL是否存在性能影响而没有创建关系。

  2. 有没有办法在rails中生成迁移,在MySQL中创建这种关系?

1 个答案:

答案 0 :(得分:2)

要解决当前创建数据库图表的任务,可以使用rdnewman建议的Rails gem。只需按照以下链接中的步骤操作:

http://rails-erd.rubyforge.org/install.html

回答你的另外两个问题:

  1. MySQL中没有问题。问题是MySQL Workbench需要外键来创建表之间的关系。您可以自己执行此操作,例如,将Post模型中的user_id属性设置为posts表中的外键。 Rails所做的是它加载你的Active Record模型并处理它们的所有属性和关联(has_one,has_many,belongs_to等),并将它组合成一个图表。

  2. 为了在MySQL中显示此关系,您需要在模型上创建foreign_keys。但是,Rails的默认行为是用于在模型上保存外键的列是添加了后缀_id的关联的名称。 :foreign_key选项允许您直接设置外键的名称。

  3. 您可以在此Association Basics Guide for Rails找到更多信息。