テーブルのエントリに都市、国などのタイプを持たせたいとしますRegions
。O/RM (私の場合は NHibernate) を使用すると仮定すると、このタイプを格納する受け入れられた方法は何ですか? 2 つのオプションが表示されます。
- C# bussines レイヤーに型を含む列挙型を持ち、型を a として
tinyint
テーブルに格納します。 RegionTypes
タイプ識別子 (文字列または整数)を含むルックアップ テーブルを用意し、それらをRegions
テーブル内で参照します。
2 番目のアプローチは、データベースの観点からはより合理的と思われます。これは、外部キーの制約があり、さらに、地域の型に関する追加データを持つことができるためです。たとえば、都市は国の子型です (そして SQL Server 2008 を使用しているため)。空間機能、実際には空間操作のためにこの情報が必要です)。ただし、C# の観点から見ると、基本的にエンティティを持っていて、RegionType
それをリージョンに割り当てるたびにデータベースからロードする必要があります (NHibernate では型をルックアップテーブルに格納する場合は列挙型)。これは、リージョン タイプが基本的に固定されており、変更される可能性が低いことを知っているため、このような単純なタスクには少し面倒です。
DayOfWeek
変更される可能性が低い、または追加のプロパティを持つ可能性が低いなど、ルックアップ テーブルとエンティティが必要な他の型についてはどうですか?