Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails有很多:通过-->;我应该保留主键列吗?_Ruby On Rails_Ruby_Database Design_Primary Key_Has Many Through - Fatal编程技术网

Ruby on rails Rails有很多:通过-->;我应该保留主键列吗?

Ruby on rails Rails有很多:通过-->;我应该保留主键列吗?,ruby-on-rails,ruby,database-design,primary-key,has-many-through,Ruby On Rails,Ruby,Database Design,Primary Key,Has Many Through,我有“author”和“book”表,加入了一个has\u many:through表“author\u book” 据我所知,“author_book”表上的:id主键字段没有任何用途……但在我提出这个想法之前,我只想确认一下。那么,在has_many:through表中保留“id”列有什么理由吗 提前感谢…如果您有作者-书籍关系的独特之处,则需要id通过AuthorBook模型在此表中进行设置。在这种情况下,听起来不太可能出现这种情况,如果需要,您可以稍后添加。如果有许多到,这意味着作者书是

我有“author”和“book”表,加入了一个has\u many:through表“author\u book”

据我所知,“author_book”表上的:id主键字段没有任何用途……但在我提出这个想法之前,我只想确认一下。那么,在has_many:through表中保留“id”列有什么理由吗


提前感谢…

如果您有作者-书籍关系的独特之处,则需要
id
通过
AuthorBook
模型在此表中进行设置。在这种情况下,听起来不太可能出现这种情况,如果需要,您可以稍后添加。

如果
有许多到
,这意味着
作者书
是一个活动记录模型,请留下id。但是,如果您要使用
has\u和\u belimited\u-many
连接表不需要id

保留它。稍后,您会发现唯一标识符会以最初不明显的方式获得回报。

与其他敏捷开发原则不同,最好提前解决这样的数据质量问题

您必须确保为这些关系添加两个索引:add_index table_name、[:author_id、:book_id]add_index table_name、[:book_id、:author_id]这确保您能够在不需要扫描表的情况下遍历关系。根据示例中这些表的名称,还可以向这些表添加“:unique=>true”,以停止重复。愿意分享“最初不明显的方式”吗?可能有实际的例子。