2012-05-16 3 views
1

Как я разрабатываю свою систему с помощью VB.NET с SQL Server/T-SQL, меня всегда поражает то, что мне кажется очевидным, а именно VB Class Properties.Идеи реализации .NET-свойств в T-SQL

Скажем, у меня есть таблица 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 по какой-либо причине, нет никакого способа сделать это, кроме как перекодировать инструкцию SELECT с использованием двух столбцов Knows ....

Кто-нибудь нашел чистый способ справиться с этим?

+3

Вы читали о [взглядах] (http://en.wikipedia.org/wiki/View_ (база данных))? –

+1

Также [вычисленные столбцы] (http://msdn.microsoft.com/en-us/library/ms186241)! –

+0

Интересно. Итак, создайте представление, чтобы имитировать ваш класс (по крайней мере, свойства)? Это неплохая идея в том, что вам нужно поддерживать свойства только в двух местах. –

ответ

1

Вы можете добавить другую таблицу, скажем, KnownLanguages, со столбцами First, Last и Language и соединить ее с таблицей Employee First и Last, или я полагаю, что может быть столбец EmployeeNumber, который вы можете использовать для ключа между их.

+0

Хороший обобщенный подход. Возможно, Иден как ПК. – Paparazzi

Смежные вопросы