MySQLを使用する電子商取引のWebサイトのデータベースを設計しています。私は必要なテーブルとそのテーブルに必要なすべてのフィールドのリストを作成しました。私は合計9つのテーブルを持っています。すべてのテーブルでIDを主キーとして自動インクリメントする
私が行ったことは、すべてのテーブルのプライマリキーとして自動インクリメントIDを含めることです。
2以外のすべてのテーブルは3NFに正規化されています。 2つのテーブル 'ユーザー'と 'アウトレット'は2NFに正規化されません。
私は、プライマリキーとして自動インクリメントIDを使用すると、正規化が面倒であることに気付きました。正規化は厳密には必要ではないので、すべてのテーブルでプライマリキーとして自動インクリメントIDを使用することには何らかの欠点があるかどうかを知りたいですか?
ブリッジテーブル(つまり、多対多関係を表すために使用されるテーブル)上の自動インクリメントIDは有用ではありません。あなたがそのような種類のテーブルを持っているなら、あなたはそれらを避けるべきです。 – Renzo
もっと便利な答えはこちら [テーブルの主キーの練習](https:// stackoverflow。com/questions/337503/whats-the-best-for-primary-keys-in-tables)[専用プライマリキーフィールド](https://stackoverflow.com/questions/166750/should-i-have-a -adicated-primary-key-field)[特定のプレフィックスとオートナンバー](https://stackoverflow.com/questions/506164/use-item-specific-prefixes-and-autonumber-for-primary-keys) – Haswin
ここで非常に良い答えは、 [テーブルの主キーのベストプラクティス](https://stackoverflow.com/questions/337503/whats-the-best-practice-for-primary-keys-in-tables) [専用のプライマリキーフィールド](https://stackoverflow.com/questions/166750/should-i-have-a-dedicated-primary-key-field) – Haswin