Прежде чем рассматривать варианты, я бы предложил (если вы еще этого не сделали :-), что вам необходимо получить четкое определение того, что именно пользователи смогут определить.Как только вы это сделаете, вы сможете получить представление о необходимом уровне гибкости и, следовательно, о типе хранилища данных, необходимого для выполнения этой работы.
Еще один совет - если клиенты будут требовать возможностисоздать что-нибудь, как они хотят - уйти.Я имел дело с клиентами и пользователями на всех уровнях, и одна вещь, которая гарантируется, состоит в том, что пользователи не заинтересованы в эффективном и действенном проектировании данных и, следовательно, всегда будут сводить данные к куче пу из-за пренебрежения сдвигом.
Вам необходимо установить некоторые границы, чтобы хранилище данных за системой поддерживало некоторую целостность.