昨天晚上
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_id和book中的id不一样,--#
估计也我这样的初学者能犯这样的错误吧。
还有,rails中,好像对于外键不是强求的,他会按照name来比配。
比如,你只要在book_comments中有book_id,rails就会自己比配。
Model/book.rb:
ruby 代码
- Has_many :book_comments
- Model/book_comment.rb
- Belongs_to :book
就可以通过book.bookComment.post来取书的评论的内容了。
It’s so easy….isnt it?
如果你对上面命名有点混乱,请参考相应的问题,理解一下,配置优于规范原则。