Krótka odpowiedź, wiele kolumn.
Długa odpowiedź:
Z miłości do wszystkiego, co święte na świecie, nie przechowuj wielu zestawów danych w jednej kolumnie tekstowej
Zakładam, że będziesz miał stół, który będzie albo
+------------------------------+ +----------------------+
| User | cell | office | home | OR | User | JSON String |
+------------------------------+ +----------------------+
Po pierwsze powiem, że oba te rozwiązania nie są najlepszym rozwiązaniem, ale jeśli miałbyś wybrać to z dwóch, najlepsze jest pierwsze. Istnieje kilka powodów, głównie dlatego, że możliwość modyfikowania i tworzenia zapytań jest naprawdę ważna. Pomyśl o algrotimie, aby zmodyfikować drugą opcję.
SELECT `JSON` FROM `table` WHERE `User` = ?
Then you have to do a search and replace in either your server side or client side language
Finally you have to reinsert the JSON string
To rozwiązanie sumuje 2 zapytania oraz algorytm wyszukiwania i zamiany. Niedobrze!
Teraz pomyśl o pierwszym rozwiązaniu.
SELECT * FROM `table` WHERE `User` = ?
Then you can do a simple JSON encode to send it down
To modify you only need one Query.
UPDATE `table` SET `cell` = ? WHERE `User` = ?
to update more than one its again a simple single query
UPDATE `table` SET `cell` = ?, `home` = ? WHERE `User` = ?
Jest to wyraźnie lepsze, ale nie najlepsze
Jest trzecie rozwiązanie Załóżmy, że chcesz, aby użytkownik mógł wstawiać nieskończoną liczbę numerów telefonów.
Użyjmy do tego tabeli relacji, więc teraz masz dwie tabele.
+-------------------------------------+
+---------+ | Phone |
| Users | +-------------------------------------+
+---------+ | user_name| phone_number | type |
| U_name | +-------------------------------------+
+---------+
Teraz możesz zapytać o wszystkie numery telefonów użytkownika za pomocą czegoś takiego
Teraz możesz wysłać zapytanie do tabeli przez sprzężenie
WYBIERZ użytkowników., telefon. FROM Telefon, Użytkownicy WHERE phone.user_name =? ORAZ Użytkownicy.U_name =?
Wstawianie jest równie łatwe, a sprawdzanie typu również jest łatwe.
Pamiętaj, że to prosty przykład, ale SQL naprawdę zapewnia mnóstwo mocy w Twojej strukturze danych, powinieneś z niego korzystać, a nie go unikać