0

論理的に異なる名前を持つ少数の列を除いて、非常によく似た多くのデータ型があります(ただし、データ型は同じです)。すべてを 1 つのテーブルに格納したい。

今のところ、私の考えは、いくつかの列に一般的な名前を付け (例: "custom_data_1" ​​など)、別のテーブルで各データ型の列名を覚えておくことです。これは機能するはずですが、(MySQL または SQLite で) 同じ効果を達成するためのより構造化された方法 (クエリをより簡単にし、汚れを感じさせない) があるかどうか疑問に思います。

4

3 に答える 3

3

異なるものを保存する場合は、それらを別のテーブルに保存する必要があります。その後、クエリを実行しやすいビューを後で作成できます。

利点は、各テーブルに独自のオブジェクトがあり、列を簡単に追加/削除/名前変更できることです。type1 には 2 つの余分な列が必要ですが、type2 では実際に列が 1 つ失われる場合はどうでしょうか?

于 2012-09-05T09:14:27.130 に答える
1

SQL VIEW を求めて叫んでいるケースがあったとしたら、これよりも優れたものはありません。あなたのSQLバックエンドがそれらをサポートしていると仮定すると(そして私は彼らのソルトが行う価値があると信じています)、それでうまくいきます.

于 2012-09-05T09:12:10.903 に答える
1

ベストプラクティスは、読みやすく使いやすいSQLを書くために正規化されたテーブル構造を持つことを提案します3つの正規形 - MySQL

列名は、使用目的を説明するものにしてください。たとえば、 auseridを呼び出さないでくださいcustom_data_1。新しいテーブルを作成し、ユーザー ID を参照する必要がある場合は、外部キーとして簡単にリンクできるはずです。

すべてを 1 つのテーブルに格納できますが、Structure Query Language はまさにそれを行うためにあります。異なるテーブル (最適化され、適切に作成された) からのデータを 1 つのビューに統合します。考慮すべき重要なことは、データの増加に伴うスケーラビリティと保守性です。

MySQL のベスト プラクティスを検討する -トップ 20+ MySQL のベスト プラクティス

また興味深い読み物 - Splitting Tables in MySQL. いい練習?

于 2012-09-05T09:41:07.860 に答える