В настоящее время у меня есть стандартная настройка приложения Laravel / MySQL, но оказывается, что нам нужно создать какое-то хранилище значений ключей. Вместо того, чтобы создавать какой-то массивный, архаичный реляционный беспорядок в MySQL, я надеялся реализовать что-то в духе Redis и хотел убедиться, что у меня есть представление о том, что делает Redis, и подходит ли это, прежде чем я проведу неделю в кругу.
В идеале у меня была бы таблица MySQL с формами
id | form
1 | 'Contact'
2 | 'Header'
3 | 'Homepage - Side'
и ведет из этих форм в другую таблицу MySQL
id | метка времени | status_id | form_id
1 | 2014-01-01 14:13:23 | 1 | 1
2 | 2014-01-02 14:13:23 | 1 | 2
тогда будет хранилище значений ключей Redis данных, связанных с лидами.
key | value | lead_id
'email' | '[email protected]' | 1
'name' | 'Curly' | 1
'best_time | 'Evening' | 2
'name' | 'Moe' | 2
'email' | 'Larry' | 3
Мои вопросы:
Redis — очень хорошее хранилище ключей / значений, но оно имеет свои ограничения. Во-первых, все должно уместиться в памяти. Это делает его непрактичным для больших наборов данных. С ним также будет немного трудно работать, если вы не будете делать вещи способом Redis, примите его причуды и ограничения.
Наличие некоторых данных в одной базе данных, а других в другой делает вещи особенно неловкими, поэтому я бы не стал этого делать, если у вас не было другого выбора.
В вашем случае вам, вероятно, понадобится лучшее хранилище документов, чем MySQL. Вы могли бы рассмотреть CouchDB, MongoDB или PostgreSQL, который имеет фантастическую поддержку JSON. MySQL сильно отстает в плане возможностей такого рода.
Если вам нужна база данных без схемы, возможно, вам нужна база данных, которая поддерживает ее изначально.
Других решений пока нет …