Предположим, что в ваших таблицах есть столбцы ID
, Name
и Value
. Теперь, имея только одну таблицу, эта таблица, скорее всего, будет выглядеть так:
create table Lookup
(
LookupID int not null identity
primary key,
LookupTypeID int not null
references LookupType(LookupTypeID),
Name nvarchar(50) not null,
Value int not null,
unique(EnumTypeID, Name)
)
go
Эта таблица гарантирует, что внутри одних и тех же имен типов не будет конфликтов.
Во всяком случае. Конечно, вы можете иметь аналогичный класс модели приложения (не данных)
public class EnumValue
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public int Value { get; set; }
}
Поэтому, когда вы получаете значения определенного типа, вы всегда можете сгенерировать IList<EnumValue>
из них и передать их определенному выпадающему списку.
Поскольку вы не предоставили каких-либо ценных данных, в этой таблице и классе можно было бы опустить столбец / свойство Value
, поскольку в зависимости от внутренней работы он может вообще не понадобиться. Но вы будете знать это лучше всего, потому что знаете свои требования к приложениям. Вместо этого столбца / свойства может помочь только идентификатор.