Have you considered using a document database here? This is just a problem that they solve much better than traditional solutions for RDBMS. Personally, I am a big fan of RavenDb . Another pretty decent option is CouchDb . I would avoid MongoDb, as this is really not a safe place for data in the current implementation.
Even if you cannot use the document database, you can force SQL to pretend to be one by setting your tables to have metadata in traditional columns with a payload field that is serialized XML or json. This will allow you to search for metadata while staying outside the EAV zone. EAV land is a terrible place.
UPDATE
, , . , , , "" - . , CLOB . , :
SurveyAnswers
Id INT IDENTITY
FormId INT
SubmittedBy VARCHAR(255)
SubmittedAt DATETIME
FormData TEXT
:
) . .
b) SQL 2000 CLOB ( TEXT, ) . , SQL 2000, TEXT, .