SQLServerに移行するAccessデータベースを継承しました。データベースには、多くのラベル付けまたは分類の列があります。たとえば、注文テーブルにステータス属性があり、サプライヤに評価属性がある場合があります。ほとんどの場合、実際のビジネスロジックはなく、それ自体はエンティティではなく、ユーザーがラベルを付けて検索できるようにするための単なる記述子です。
一方では、これらの記述子は独自のテーブルに配置し、外部キーを使用して参照する必要があると思います。そして、私のアプリケーションコードでは、代理IDに一致する列挙型を使用できます。なんで?簡単に追加できるので、値を簡単に変更でき、スペースを節約できるかもしれません。
Order { OrderId int, CustomerId int, StatusId int}
Status { StatusId int, Name varchar(50)}
一方、これらの属性の多くは変更されることはなく、追加されることもありません。他にもやるべきことがたくさんあるので、そのままにしておくべきだと思います。
Order{OrderId int, CustomerId int, Status varchar(50)}
最初のオプションは、常に実行する必要がある方法を上回っていますか?2番目のオプションは受け入れられますか?そのままにしておくことの唯一の欠点は、テーブルが少し大きくなり、文字列の比較がintの比較ほど速くない可能性があることです。