プライマリキーを使った1:1関連でカラム数の多いテーブルを分割する - Hidden in Plain Sight プチ・デザインパターン的なやつ、僕もよくやってます。 で、運用エンジニア的にはデータの不整合を起こしうる要因はできる限りDB側の制約でも防ぎたいので、このusersとprofilesの場合だと、usersで自動採番されたidをprofilesでも使うのでprofilesの自動採番する機能は残しておくと事故るリスクがあるので落としたいわけです。 なので、僕はいつもこんな感じでmigrationを書いてます。 class CreateUsers < ActiveRecord::Migration def change create_table :users do |t| t.string :email, charset: 'ascii', collation: 'ascii_bi