バックエンドに MySQL データベースを使用する現在取り組んでいる Web アプリケーションがあり、先に進む前に自分の状況に何が適しているかを知る必要があります。
簡単に言えば、このアプリケーションでは、ユーザーは任意の数値フィールドを使用して独自のフォームを作成することができ (ユーザーが決定します)、現在、すべてを外部キーでリンクされた 2 つのテーブルに格納しています。私の友人は、物事を「簡単/高速」に保つために、各ユーザーのフォームをフラットテーブルに変換して、ユーザーからのデータのクエリが高速に保たれるようにすることを提案しています (大幅な成長の場合)。
外部キー (インデックスなど) を持つリレーショナル テーブルにすべてをプールして、データベースを正規化する必要がありますか?それとも、ユーザーが作成する新しいフォームごとにフラット テーブルを構築する必要がありますか?
明らかに、フラット テーブルを作成する利点のいくつかは、データの分離 (セキュリティ) であり、クエリの速度が低下します。しかし、真剣に、これからどれだけの利益が得られるでしょうか? 10000 個のテーブルを常に削除、変更、および追加することは本当に望んでいませんが、それが私よりも優れている場合は... 入力が必要です。
ありがとうございました