【发布时间】:2014-05-08 01:01:43
【问题描述】:
我的任务是创建一个正在开发中的当前 Rails Web 应用程序的数据库图。我已经在 rails 应用程序中创建了几个关系。
belongs_to :company
has_many :users
我使用了 MySQL Workbench EER 图工具。当我拉入 Company 表和 User 表时,MySQL 不明白这两个表之间存在关系。
我想知道 MySQL 未创建关系是否会影响性能。
在 Rails 中生成迁移时,有没有办法在 MySQL 中创建这种关系?
【问题讨论】:
-
你看过 gem Rails-ERD (rails-erd.rubyforge.org) 吗?这会有所帮助。
-
不知道。它确实完成了我遇到的问题。对第 1 点和第 2 点有什么想法吗?
-
Re 1,它主要是驱动性能的指标,并且可以在 Rails 迁移中指定。 Rails 在其迁移中创建外键,就像您直接创建的一样(查看生成的 SQL),所以我怀疑您是否会看到以这种方式使用 Rails 的成本,只要您指定了索引。
-
Re 2,“ruby 方式”是将逻辑全部移动到模型中,并且在 MySQL 中本身不做任何事情。没有 null 限制等,而是让 Ruby 指定。这样做有很好且合乎逻辑的理由(例如,没有跨层指定行为,而是封装在模型中),但如果您有使用旧语言或 DBA 的经验,确实需要一些时间来适应
标签: mysql ruby-on-rails associations entity-relationship