“具有唯一索引列的模型”
这是否仅意味着模型和列在列上具有唯一的验证?或者是否意味着该列在迁移中需要add_index?
你能解释一下创建add_index的确切含义吗?例如,如果您有一个Authors模型,带有一个名称列。为'name'添加索引可以实现什么?
感谢。
答案 0 :(得分:0)
我认为该模型有一个保证唯一的列,并且有一个索引。我认为你正在阅读Rails中的模型。
唯一列意味着没有两个模型(例如User1和User2)可以为该列具有相同的值。例如,用户将拥有唯一的登录名。不应存在具有相同登录名(或用户名或电子邮件)的两个用户。但是Rails会自动为模型提供一个始终唯一的ID列。除非你改变它,否则第一条记录将具有ID 1,然后是2,然后是3,等等。
列上的索引意味着更容易找到该列。想想一本百科全书。那里有太多的信息,但附录(如索引)可以帮助您快速找到您要查找的内容。可能有一个关键术语的附录,然后它会告诉你在哪里快速找到它。这就是列上的索引。
默认情况下,Rails中的“具有唯一索引列的模型”是ID列:它是唯一的,它会自动获取索引以更快地查找记录。
额外:当您使用外键创建模型时(例如:模型用户可能有gender_id,并且您可能有一个名为Gender的表定义男性和女性,而gender_id对应于Gender对象),那么您应该为该外键添加一个索引,以便更快地对其进行搜索。