rails中用migrate建表的时候,建立外键出错。ft

昨天晚上rp 严重走低,被mysql 的一个问题搞到很晚,还使我把数据库重新建了一下。
问题是,我想把book comment_book 表关联起来,就是建外键,但是建不起来。报150 错误。
早上起来继续搞,查看了manul ,突然发现这样的一句话。
Corresponding columns in the foreign key and the referenced key must have simila internal datatypes inside InnoDB so that they can be compared without a type conversion. The size and the signedness of integer types has to be the same……
….similarly, if an ALTER TABLE fails and it refer to errno 150, that means a foeign key definition would be incorrectly formed for the altered table….
 

大意就是,相互关联的域的类型的类型需要相同,如果是integer,大小要相同,如是string ,长度要相同。。

而我,就是因为book_comment 中的book_idbook中的id不一样,--#

 

估计也我这样的初学者能犯这样的错误吧。

还有,rails中,好像对于外键不是强求的,他会按照name来比配。

比如,你只要在book_comments中有book_id,rails就会自己比配。

Model/book.rb

ruby 代码
  1. Has_many    :book_comments  
  2.   
  3. Model/book_comment.rb   
  4. Belongs_to  :book  
 

就可以通过book.bookComment.post来取书的评论的内容了。

It’s so easy….isnt it?

如果你对上面命名有点混乱,请参考相应的问题,理解一下,配置优于规范原则。

你可能感兴趣的:(mysql,Ruby,Rails)