0

いくつかの異なるテーブルに(キーとして)表示されるフィールドを持つデータベースを作成しようとしています。たとえば、私のリストテーブルにはMLS_IDがあります。このフィールドは、listing_photosテーブルにも表示されます。フィールド名を一意にするためにプレフィックスを付ける必要があります:例としてlistings_MLS_ID?

4

3 に答える 3

2

それをする意味はまったくありません。データベース名とテーブル名の両方を常にフィールド名の前に付けて、一意の識別子を取得し、名前自体をきちんと簡潔に保つことができます。

listings.mls.id 

データベースに属するテーブルid内のフィールドをアドレス指定します。 mlslistings

これは非常に柔軟です。長い一意の識別子が必要なときはいつでも、それを手に入れることができます。
それ以外の場合はすべて、短い名前を使用できます。

于 2012-04-30T18:59:25.067 に答える
1

両方のテーブルでキーに同じ名前を付けます (MLS_ID)。データベースサーバーは、より簡潔なUSING句を使用できるようにすることで、これを行うことに対して報酬を与えます。

SELECT * FROM listings
JOIN listing_photos
  USING (MLS_ID)

これではなく:

SELECT * FROM listings
JOIN listing_photos
  ON listing_photos.listings_MLS_ID = listings.MLS_ID
于 2012-04-30T19:05:12.103 に答える
0

これは個人的な好みです。

私のため:

主キーを除いて、ローカルテーブル名の前に付けません。たとえば、PERSON テーブルは PERSON_ID 列を取得し、ADDRESS テーブルは ADDRESS_ID などを取得します。

PERSON_ADDRESS テーブルは、他のものではなく、PERSON_ID と ADDRESS_ID を取得します。

クエリでは、キーとして同等である必要がある場合、列名は同等であり、テーブルのエイリアスはどれがどれであるかを示します。

于 2012-04-30T18:59:54.977 に答える