1

当我使用带有 SQL Server/T-SQL 的 VB.NET 设计我的系统时,我总是对在我看来明显的差距感到震惊,即 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目前取决于两个领域。也许有一天这会改变,更多的领域或条件可能会发挥作用。这就是使用属性的全部原因。

现在,如果我出于某种原因在 SQL 中需要我的属性的等价物,除了使用两个 Knows... 列重新编码一些 SELECT 语句之外,别无他法。

有没有人找到一个干净的方法来处理这个?

4

1 回答 1

1

您可以添加另一个表,例如 KnownLanguages,其中包含 First、Last 和 Language 列,并将其连接到 First 和 Last 的 Employee 表,或者我想可能有一个列 EmployeeNumber,您可以将其用作它们之间的键。

于 2012-05-16T20:34:46.860 回答