Buduję aplikację PHP/MySQL i pozwalam użytkownikom tworzyć własne niestandardowe (o ile tylko chcą) dane profilu (np. Mogą dodawać dowolną ilość informacji do ich profilu z dodatkowymi polami tekstowymi, ale jest tam zestaw pól profilu użytkownika "CORE")MySQL, ale nie znam nazw kolumn przed ręką
Na przykład mogą utworzyć nowy tekst w formularzu i nazwać go "moim zwierzakiem" i/lub "mój ulubiony kolor ". Musimy przechowywać te dane w bazie danych i nie możemy oczywiście utworzyć kolumn dla każdego z ich wyborów, ponieważ nie wiemy, jakie są ich dodatkowe informacje przed ręką.
Jednym ze sposobów, uważamy, że możemy przechowywać wszystkie „addidional info” one dostarczyć jest przechowywanie ich dodatkowe informacje jak JSON i przechowywać go w polu tekstowym MySQL (MySQL kocham :))
widziałem Wtyczki do budowania formularzy Wordpress, w których można tworzyć własne pola, więc myślę, że muszą przechowywać dane w MySQL w jakiś sposób, ponieważ rozwiązania NoSQL wykraczają poza zakres tych wtyczek.
Chciałbym trzymać się MySQL, ale czy uważasz, że rozwiązania NoSQL, takie jak MongoDB/Redis, byłyby lepszą poprawką, skoro do tego?
Dzięki
Odpowiedź, jak zawsze, jest zależna. Jeśli masz setki tysięcy użytkowników, musisz wypróbować różne rozwiązania, aby zobaczyć, co się skaluje. Ale w przypadku niewielkiego zestawu opcji dla relatywnie małego zestawu wierszy, JSON lub serializowana wartość PHP w istniejącym relacyjnym db jest dobra. Myślę, że Wordpress używa serializacji wewnętrznie dla niektórych rekordów opcji. – halfer
+1 za ciekawe pytanie i fajną funkcję :-) –