sql >> Database >  >> RDS >> PostgreSQL

Hoe een gegevenstabel in de database op te slaan?

Er zijn twee typen die speciaal geschikt zijn voor het opslaan van woordenboeken als geheel:hstore en json - of de meestal superieure jsonb in Postgres 9.4 of hoger.

Postgres heeft ook een speciale xml gegevenstype, maar ik zou liever een van de drie voorgaande opties kiezen. XML is relatief uitgebreid en complexer (om niet te zeggen ingewikkeld) en kan voor uw doel overkill zijn.

Als alles wat je van de DB wilt, is om het hele woordenboek op te slaan en op te halen, dan zijn dit goede opties. Zie:

U vindt ook een uitgebreide discussie over voor- en nadelen rond (entity-attribute-value) opslag in relationele databases.

Als je andere dingen uit de DB wilt, zoals referentiële integriteit, externe sleutels of verschillende andere beperkingen, gemakkelijke toegang tot individuele waarden, minimale opslaggrootte, eenvoudige indexen enz. Ik raad een of meer tabel(len) aan met toegewijde (genormaliseerd ) kolommen.

Genormaliseerde tafelindeling

Van wat ik verzamel, "MijnObject" (m ) bevat een verzameling verwijzingen naar "OtherObject" (o ). Elke m is gerelateerd aan (24) o en elke o is gerelateerd aan 0-n m - die kan worden geïmplementeerd in een klassieke n:m-relatie. Hier zijn gedetailleerde instructies:




  1. 30 minuten toevoegen aan datetime php/mysql

  2. Dieper graven in Django-migraties

  3. MySQL-syntaxisfout, niet-herkend sleutelwoord null

  4. MySQL:kolom in tweeën splitsen