web-dev-qa-db-ja.com

列対ルックアップテーブルとしての配列

こんにちは私は1対多の関係を持つ2つのテーブルを持っています。

 Table 1 Users:                     

 -------------
| id  |  name |
 -------------
| 01  |  John |
 -------------
| 02  | Harry |
 -------------

  Table 2 Cars:                     

 -------------
| id  | Brand |
 -------------
| 01  |  GM   |
 -------------
| 02  | Honda |
 -------------

現在、すべてのユーザーが複数の車を所有している可能性があります。どちらが高速でパフォーマンスが効率的ですか?

ユーザー列にcarOwnedという名前の配列列がある場合:

 Table 1 Users:                     

 ------------------------
| id  |  name | carOwned |
 ------------------------
| 01  |  John | [01, 02 ]| 
 ------------------------
| 02  | Harry | [02]     |
 ------------------------

またはルックアップテーブルのような?

   Table 3 CarOwnership:                     

 -----------------
| userId  | carId |
 -----------------
| 01      |  01   |
 -----------------
| 01      |  02   |
 -----------------
| 02      |  02   |
 -----------------

Lookup Tableアプローチを使用する必要があります。絶対に必要な場合は、ほとんどのデータベース実装に、別のアプリケーションが使用する結果のような配列に行を変換するために使用できるツールがあります。しかし、データベースに関する限り、行メソッドに固執することで、簡単に結合できる、すっきりとしたリレーショナルモデルを維持できます。

2
Duffy