I have scenario where I need to store unstructured data but the rest of my data is structured and relational. An example of the type of unstructured data is as explained below:
User Type 1:
How do you blah blah : 5 fields
User Type 2 :
How do you blah blah : 3 fields
User Type 3 :
How do you blah blah : 7 fields
All 3 types are asked the same question "How do you blah blah" but each user type answers it using different number of fields. And there can be a lot of different user types.
For the relational data, I'm using MySQL but i'm a little confused on how to store this unstructured data:
- Serialize as JSON and store in MySQL
- Use NoSQL
My requirements are high reads, average updates, average inserts & no deletes. No JOINS needed. I need guaranteed writes & high availability. If I were to choose a NoSQL, it'd be a AP type according to the CAP theorem. I won't be hitting millions of records anytime soon.
I also plan to provide a text search for this data in the future, but it doesn't need to be a real time search, so I can always index the data using Lucene periodically. But of course, document based NoSQL implementations do provide this out of the box. But I have read in a few places where people have advised against storing JSON data in MySQL. But adding a NoSQL layer could be overkill.
What do I do & if you do advise me to go for NoSQL DB, which one should I choose?
EDIT: To clarify, I don't need to query the specific fields from the data that I'm storing. If I need the data, then i'll need the whole data together, not specific fields. I do need full text search, which I can accomplish on MySQL too using Lucene.