1

VB.NET と SQL Server/T-SQL を使用してシステムを設計していると、VB クラス プロパティと呼ばれる明らかなギャップにいつも驚かされます。

列を持つテーブル Employee があるとします。

First varchar  
Last varchar  
KnowsSPANISH bit  
KnowsGERMAN bit  

VBでは、次のようなクラスがあるかもしれません:

Class Employee  
  Public First as string  
  Public Last as string  
  Public KnowsSPANISH as boolean  
  Public KnowsGERMAN as boolean  

  Public Readonly Property SpeaksAForeignLanguage  
    Get  
     If KnowsSPANISH or KnowsGERMAN return True else return False   
    End Get  
  End Property  
End Class  

したがって、私のプロパティSpeaksAForeignLanguageは現在 2 つのフィールドに依存しています。おそらくいつかこれが変わり、より多くの分野や条件が登場するかもしれません。これが、プロパティを使用するすべての理由です。

なんらかの理由で SQL で自分のプロパティに相当するものが必要になった場合、2 つの Knows... 列を使用して SELECT ステートメントを再コーディングする以外に方法はありません。

誰かがこれに対処するためのきれいな方法を見つけましたか?

4

1 に答える 1

1

たとえば、KnownLanguages という別のテーブルを追加して、列 First、Last、Language を追加し、それを First と Last の Employee テーブルに結合するか、それらの間のキーに使用できる列 EmployeeNumber があると思います。

于 2012-05-16T20:34:46.860 に答える