Kort antwoord, meerdere kolommen.
Lang antwoord:
Voor de liefde van alles wat heilig is in de wereld, sla alsjeblieft niet meerdere datasets op in een enkele tekstkolom
Ik neem aan dat je een tafel hebt die ofwel
+------------------------------+ +----------------------+
| User | cell | office | home | OR | User | JSON String |
+------------------------------+ +----------------------+
Eerst zal ik zeggen dat beide oplossingen niet de beste oplossing zijn, maar als je een van de twee zou kiezen, is de eerste de beste. Er zijn een paar redenen, vooral hoewel de mogelijkheid om specifiek te wijzigen en op te vragen echt belangrijk is. Denk na over het algoritme om de tweede optie aan te passen.
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
Deze oplossing heeft in totaal 2 zoekopdrachten en een zoek- en vervangalgoritme. Niet goed!
Denk nu aan de eerste oplossing.
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` = ?
Dit is duidelijk beter, maar niet het beste
Er is een derde oplossing Stel dat u wilt dat een gebruiker een oneindig aantal telefoonnummers kan invoeren.
Laten we daarvoor een relatietabel gebruiken, dus nu heb je twee tabellen.
+-------------------------------------+
+---------+ | Phone |
| Users | +-------------------------------------+
+---------+ | user_name| phone_number | type |
| U_name | +-------------------------------------+
+---------+
Nu kunt u alle telefoonnummers van een gebruiker opvragen met zoiets als dit
Nu kunt u de tabel opvragen via een join
SELECTEER gebruikers., telefoon. VAN Telefoon, gebruikers WAAR phone.user_name =? AND Users.U_name =?
Invoegen is net zo eenvoudig en typecontrole is ook eenvoudig.
Onthoud dat dit een eenvoudig voorbeeld is, maar SQL biedt echt heel veel kracht aan uw gegevensstructuur, u moet het gebruiken in plaats van het te vermijden