データベーステーブル定義の列の順序付けに関する標準/規則はありますか?

StackOverflow https://stackoverflow.com/questions/833329

質問

データベーステーブルの定義で列を並べる方法についての標準/慣習はありますか?その場合、その標準の動機は何ですか? (賛否両論)

たとえば、主キーは最初の列ですか?外部キーを主キーに直接従わせる必要がありますか、それともテーブルの右端に配置する必要がありますか?

異なるDBMSの表記規則に違いがある場合、この場合のDBMSはMicrosoft SQL Server 2005です。

ありがとう/ Erik

役に立ちましたか?

解決

標準は認識していませんが、コラムを構成する方法は

  1. 主キー
  2. 任意の外部キー
  3. データ

コメントなどのデータ列は最後に配置されます。右側にスクロールしなくても、クエリアナライザーでできるだけ多くのデータを簡単に表示できます。

他のヒント

常に次のようにテーブルを構成します:

  1. 主キー
  2. 「トラッキング」列(DateModified、ModifiedByなど)
  3. 任意の外部キー
  4. データ

設定規則についてはわかりませんが、ID / Primaryキー列を常にテーブルの最初の列として配置します。 pkが見やすくなるからだと思います。また、fkフィールドでそれに従うと言いますが、その後、実際の標準はありませんが、データ型でそれを行うことができますか?

また、これは設定されたベストプラクティスではなく、個人的な選択です。

知りません。とにかく、選択中にいつでも列の順序を変更できます。したがって、列を適切に順序付けすることによっていくつかのデータベースで実行できる本当に不明瞭な最適化がない限り、それはほとんど問題になりません。

T私が知っている公式の標準はありませんが、通常は、主キーを最初に置き(通常は代理)、次に機能ごとに他のフィールドをグループ化します。だから「人」で表1は、個人の住所データを含むフィールドをグループ化します。ほとんどの人は、適切なテーブル定義の外にFK、インデックス、およびその他の制約を追加します。

mm ..私が知っているように、制限はありません。その明確さの問題。

上記の投稿のほとんどに同意します。主キーが(少なくとも)最初です。残りは個人的な好みです。標準がある場合は、その標準に従ってください。

列をかなり論理的にまとめることを好みます。完全に正規化されたデータ構造が適切でない場合があり、「マイナーエンティティ」がある場合があります。同じテーブルに保存されます(つまり、NULLを削除しません)。例としては、住所フィールド、または一緒に配置された別の電話、携帯電話、勤務先電話の列などがあります。

私ができる最も印象的な例は、それをしてはいけないことです。開発者がスキーマを自動生成し、列がアルファベット順に作成されている場合(およびPKがテーブル構造の途中で隠されていた場合)、それは最も面倒です。

edoodeによると:-

Primary key(s) 
'Tracking' columns (DateModified, ModifiedBy and such) 
Any foreign keys 
Data 

プラス

Fixed width 'not null' columns
Fixed width 'nullable' columns
Variable Width columns VARCHAR NVARCHAR etc.
CLOBS
BLOBS 

テーブルの下部に長さの異なる列を貼り付けると、パフォーマンスがわずかに向上します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top