テーブル作成プロトコル
1. [必須] はいまたはいいえの概念を表すフィールドは is_xxx の方法で名前を付ける必要があり、データ型は unsigned tinyint (1 ははいを意味し、0 はいいえを意味します) この規則も適用されます。 odps 施工面に。
注: フィールドが負ではない数値の場合、符号なしである必要があります。
2. [必須] テーブル名とフィールド名には小文字または数字を使用する必要があります。数字で始めることや、 数字のみを使用することは禁止されています。 2 つのアンダースコアの間。データベースのフィールド名の変更は、プレリリースが不可能なため非常にコストがかかり、そのためフィールド名を慎重に検討する必要があります。
正の例: getter _ admin , task _ config , level 3_ name
逆の例: GetterAdmin , taskConfig , level _3_ name
#3. [必須] テーブル名には複数の名詞を使用しないでください。
注: テーブル名はテーブル内のエンティティの内容のみを表す必要があり、エンティティの数を表すべきではありません。対応する DO クラス名も単数形 形式です。 、これは表現習慣と一致しています。
#4. [必須] desc、range、match、delayed などの予約語を無効にします。MySQL 公式の予約語を参照してください。
5. [必須] 一意のインデックス名は uk _field name で、共通インデックス名は idx _field name です。
説明: uk _ は一意のキー、idx _ はインデックスの省略形です。
#6. 【必須】 10 進数型は 10 進数で、float、double は禁止です。
注: float と double を格納する場合、精度が失われるという問題があり、値を比較するときに誤った結果が得られる可能性が高くなります。保存されるデータ範囲が 10 進数の範囲を超える場合は、データを整数と小数に分割して別々に保存することをお勧めします。
の場合、がこの値より大きい場合は、他のフィールドのインデックス作成効率への影響を避けるために、フィールド タイプをテキストとして定義し、別のテーブルを作成し、対応する主キーを使用します。
9. [必須] テーブルには、id、gmt_create、gmt_modified の 3 つのフィールドが必要です。
注:
id は主キーである必要があり、型は符号なし bigint、単一テーブルの自動インクリメント、ステップ サイズは 1 です。 gmt _create とgmt _modified の型はすべて date_time 型です。
#10. 【推奨事項】 テーブル名は「業務名_テーブルの機能」とするのがベストです。
良い例: Tiger _ task / Tiger _ Reader / mpp _ config
11. [推奨] ライブラリ名とアプリケーション名は次のようになります。できるだけ一貫性のあるものにしてください。
#13. [推奨事項] パフォーマンスを向上させるためにフィールドに適切な冗長性を許可しますが、データの同期を考慮する必要があります。冗長なフィールドは次のとおりです。
1) 頻繁に変更されないフィールド。
2) これは varchar の超長いフィールドではなく、ましてやテキスト フィールドでもありません。 良い例: 製品カテゴリ名は頻繁に使用され、フィールドの長さは短く、名前は基本的に変更されません。カテゴリ名を関連するテーブルに重複して格納して
関連するクエリ。14. [推奨事項] データベースとテーブルのシャーディングは、単一テーブルの行数が 500 万を超える場合、または単一テーブルの容量を超える場合にのみ推奨されます。 2GB。
注:データ量が 3 年以内にこのレベルに達しないことが予想される場合は、テーブルを作成するときにデータベースをテーブルに分割しないでください。
15. [参考] 適切な文字ストレージ長は、データベースのテーブル スペースとインデックス ストレージを節約するだけでなく、さらに重要なことに、取得速度を向上させます
。 肯定的な例: 人の年齢は符号なし tinyint (0 ~ 255 の範囲を示し、人の寿命は 255 歳を超えない); Turtle
は次のようにする必要があります。 smallint ですが、太陽の年齢が int である必要がある場合、すべての星の年齢が合計される場合は、bigint を使用する必要があります。