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