Опять же, пожалуйста, не делайте этого.
Проверьте Значение атрибута сущности в отношении баз данных. Это поможет вам хранить большое количество разреженных атрибутов на объекте и не заставит базы данных плакать.
Основная концепция показана ниже
create table #attributes
(
id int identity(1,1),
attribute varchar(20),
attribute_description varchar(max),
attribute_type varchar(20)
)
insert into #attributes values ('Column 1','what you want to put in column 1 of 1000','string')
insert into #attributes values ('Column 2','what you want to put in column 2 of 1000','int')
create table #entity
(
id int identity(1,1),
whatever varchar(max)
)
insert into #entity values ('Entity1')
insert into #entity values ('Entity2')
create table #entity_attribute
(
id int identity(1,1),
entity_id int,
attribute_id int,
attribute_value varchar(max)
)
insert into #entity_attribute values (1,1,'e1value1')
insert into #entity_attribute values (1,2,'e1value2')
insert into #entity_attribute values (2,2,'e2value2')
select *
from #entity e
join #entity_attribute ea on e.id = ea.entity_id
Разница между тем, что идет в таблице #entity, и тем, что идет в таблице #attribute, в некоторой степени зависит от приложения, но общим правилом будет то, что никогда не будет нулевым и доступно каждый раз, когда вам нужен объект, я бы ограничить это до 10 или около того предметов.
Позвольте мне угадать, это медицинское заявление?