Open2
テーブルのリレーションに意味のある識別子を使わないほうがいい理由
その識別子の登録を間違った時に修正することが困難
products
- id
- code
product_settings
- id
- product_code
例えばこのようなリレーションが貼られているとします。
この時にproducts.codeの登録を一旦間違えてしまうとリレーション先のテーブルも間違えてしまうので、一度本番稼働してしまうと修正が困難になってしまいます。
そのためUUIDやオートインクリメントの IDのように意味のない値でリレーションを貼っておくほうが良いです
環境で値が同じなので作業ミスにより障害が発生しやすい
意味のある値をリレーションに使っていると、環境で値が一緒なので作業環境を間違ってしまうとそのままスクリプトが実行されたりしてしまいます。
自動採番された意味のない識別子ならSELECTを打った時にデータが取得できずに空振りなどして気づくので安全です
補足
逆に環境で同じスクリプトを使いましたいならスクリプト側を工夫するのが良さそう