I'm working on a project that shares many of the same demands as
this project described by this project for Yale university (frequent adding and removing of columns, objects that logically belong to the same structure but that might collect very different attributes) and as a result I began looking more heavily into
EAV/CR models (where the attributes belonging to a certain table are collected in a separate attribute table which basically provides the attribute description while the values are collected in yet another table).
Yet when I study conventional programming/database literature most naturally advises strongly against it.
I was wondering if from a database POV it had already been decided that this should never be done? Or when it is done, what the thresholds usually are for when it becomes indeed the best choice at least for some tables (new columns added several times a day/month/year; flexibility for the user to create their own studies where on a very loose study structure they then decide which measurements are taken in their study; automatic form creation based on table description). Are there literature or tools which help doing EAV effectively? (one A and V table per table-table? What about number table, string table etc distinction?) What about other types of database (possibly non-relational)?
It seems that there is quite a demand for EAV type flexible architecture in the scientific field. At least that is where I found most of the literature on the subject.
Though I would naturally be very happy to receive any pointers I mostly wanted to know whether it is a dead end (if it should generally never be done under any circumstances) for my group to look into.