0

私は3つのモデルを持っています:

  • 国名:文字列
  • 州名: 文字列、国: 参照
  • 都市名: 文字列、州: 参照

私はモデルを持っています:

  • ユーザー名:文字列、姓:文字列、都市:参照、...

このモデルで州と国への参照も保持する必要がありますか、それとも都市モデルへの参照のみを保持する必要がありますか?

どのソリューションが優れていますか? 現場の交通量はそれほど多くありません。

よろしく

4

1 に答える 1

0

この答えは、ユースケースに完全に依存します。問題のアドレスにメールを送信する必要がある場合は、非常に一貫したアドレスが必要になる可能性が高くなります。あるいは、他のユーザーが知るための単なる情報かもしれません。

私は「ニュートン」という都市に住んでいますが、私の実際の住所は「ニュートン センター」と呼ばれていますが、ほとんどの人は「ニュートン センター」と書いています。このデータがアプリでどのように使用されるかによって、ユーザーが自分の都市を入力できるようにすることを選択するかもしれません。おそらく、既存のリストをオートコンプリートなどを支援する方法として使用します。ユーザーが住んでいる可能性のあるすべての都市がデータベースにない場合、またはエラーがある場合、ユーザーが対処するのは面倒です。これに対処する方法はたくさんありますが、それらはすべてデータの一貫性とユーザビリティのトレードオフです。

すでに 3 つのモデルがあり、データが取り込まれている場合は、おそらくそれが正しい方法であり、(このような) 適切に正規化されたデータ モデルを持つことは常に私の最初の本能です。ただし、これは特殊な状況です。特に州 (およびおそらく州) と国では、コード内のハッシュに格納できる確立された ISO 標準コードがあり、ISO コードをデータベースに格納するだけです。これらの参照を提供する多数の gem があります。

私はほとんどの場合、「データベースを正規化した」と言う人ですが、これは、都市、州/県、国 (さらには郵便番号) について、データベースに基づくモデルを持たないことに決める場合があるかもしれません。これが、ほとんどの「典型的な」アプリケーションがアドレスを処理する方法だと思います。

于 2012-11-21T14:20:53.953 に答える