Это отлично работает, но это кошмар, когда дело доходит до поиска.
У других людей здесь есть хорошие ответы, но я бы хотел предложить вам немного по-другому взглянуть на проблему. Как это "работает нормально", если вы не можете найти его? Это все равно, что сказать «запись в / dev / null - это здорово, но чтение - это проблема».
Я предлагаю вам сначала подумать о том, как вы собираетесь использовать информацию (т.е. как это важно для бизнеса), затем подумать о том, какую информацию собирать у пользователя, а затем подумать о том, как ее хранить, чтобы она могла служить. цель. Соблазнительно перейти прямо к шагу 3, потому что в большинстве случаев это «очевидно», но когда вы столкнетесь с не столь очевидной ситуацией, вернитесь к началу, и решение будет ясным.
Желательно придумать хотя бы пару способов использования этой информации. Это помогает избежать чрезмерно специфических представлений данных. Также избегайте чрезмерного усердия «давайте соберем эту информацию, чтобы быть в безопасности». Это приводит к большому количеству дополнительной информации без четкой связи с бизнесом, что приводит к недоразумениям относительно ее значения. Когда пришло время запрашивать информацию, у вас будет беспорядок.