What kind of database field type should you (normally) use for foreign keys?

October 26, 2018

For most cases you will want to use unsignedInteger for foreign keys. The actual answer is that the foreign key should be the same type as the primary key on the main table, which is normally an unsignedInteger.

Even if it isn't an actual foreign key you should be using this for anything that relates to another unsignedInteger. It is marginally quicker than just using integer.

<?php
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');