質問

多くの企業がデータベーステーブルにプレフィックスを使用していることに気付きました。例えば。テーブルの名前はMS_Order、MS_Userなどになります。これを行う理由はありますか?

私が考えることができる唯一の理由は、名前の衝突を避けることです。しかし、それは本当に起こりますか? 1つのデータベースで複数のアプリを実行していますか?他に理由はありますか?

役に立ちましたか?

解決

SQL Server 2005以降では、スキーマ機能により、あらゆる種類のプレフィックスが不要になります。それらの使用法の良い例は、 AdventureWorksのスキーマ

いくつかの古いバージョンのSQLサーバーでは、擬似ネームスペースを作成するためのプレフィックスを使用すると、多くのテーブルを持つDBで役立つ場合があります。

それ以外は、ポイントを実際に見ることができません。

他のヒント

個人的には、値が表示されません。実際、すべてがMS_で始まるため、インテリセンスに似た機能には困ります。 :) マスターも私に同意します

巨大なスキーマには、多くの場合、類似しているが明確な目的を持つ多くのテーブルがあります。したがって、さまざまな「セグメント化された」命名規則。

くそ、最初の投稿はありませんでした:-)

データベースに含まれるアプリケーションが1つだけの場合でも、プレフィックスはアプリケーションの一部のようにグループ化するのに役立ちます。そのため、cutomer情報を含むテーブルの前にcust_、倉庫情報を含むテーブルの前にinv_(在庫)、financial情報を含むテーブルの前にfin_などが付いている場合があります。

私は、別の会社によって作成および保守されたアプリケーションの既存のデータベースがあるシステムで作業しており、わずかな追加テーブルを使用して同じデータを大量に使用する別のアプリを追加する必要がありました独自のものなので、その場合はアプリ固有のプレフィックスを付けると分離に役立ちます。

元の質問のわずかに接線方向に、データベースがテーブルを保持しているデータのタイプを示すためにプレフィックスを使用するのを見ました。サイズと内容の両方で明らかに静的なルックアップテーブルのプレフィックスと、可変データを含むテーブルの異なるプレフィックスがあります。これは、ログ、処理された注文、顧客トランザクションなどのように追加されるが実際には変更されないテーブルのプレフィックスと、顧客残高などのより可変的なデータのプレフィックスを持つように分割される場合があります。リンクテーブルには、それらを区別するための独自のプレフィックスを付けることもできます。

通常、異なるアプリケーションのテーブルを同じデータベース名前空間に入れるのは意味がないので、名前の衝突は見たことがありません。異なるアプリケーションに統合できる再利用可能なライブラリがある場合、おそらくそれが理由かもしれませんが、私はそのようなものを見たことはありません。

とはいえ、今考えてみると、ユーザーが非常に少数のデータベースのみを作成できるようにする安価なWebホスティングプロバイダーがあります。そのため、単一のデータベースを使用してさまざまなアプリケーションを実行できます。名前が衝突しない限り(そして、そのような接頭辞規則は確かに役立つでしょう)。

特定のテーブルを使用する複数のアプリケーション、正しい。プレフィックスは名前の衝突を防ぎます。また、テーブルをバックアップして同じデータベースに保持し、接頭辞を変更するだけでバックアップが完全に機能するなど、かなり簡単になります。それ以外は、良い習慣です。

プレフィックスは、複数のアプリが同じデータベースにアクセスするときに、どのSQLオブジェクトがどのアプリに関連付けられているかを整理するのに適した方法です。

セキュリティの管理を容易にするために、同じアプリ内でsqlオブジェクトに異なるプレフィックスを付けました。つまり、admin_を持つすべてのオブジェクトにこのセキュリティを適用する必要があり、残りには何か別のものが必要です。

プレフィックスは、人間、検索ツール、およびスクリプトに便利です。ただし、状況が単純な場合は、おそらくまったく使用できません。

複数のアプリケーションが1つのデータベースを共有している場合に最もよく使用されます。たとえば、Wordpressをインストールすると、すべてのテーブルの前に" wp_"が付きます。これは、アプリケーションでデータを非常に簡単に共有したい場合に便利です(たとえば、社内のすべてのアプリケーション間でのセッション)。

しかし、これを達成するためのより良い方法があり、各アプリケーションには独自の自己完結型データベースがあるため、テーブル名にプレフィックスを付けることはありません。

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