Ting at overveje med dine tilgange
Lagring af brugerprofil i brugertabel
- Dette vil generelt være den hurtigste tilgang med hensyn til at få adgang til profildataene, selvom du muligvis har en masse overflødige data her (kolonner, der muligvis ikke har nogen information).
- Hurtig (især hvis du kun trækker de kolonner, du har brug for, fra db)
- Spildte data
- Sværere at arbejde med/vedligeholde (formentlig med grænseflader såsom PHPMyAdmin)
Lagring af brugerprofil i User_Profile Tabel 1-1 forhold til brugere
- Bør stadig være ret hurtig med en deltagelse, og du kan eliminere noget dataredundans, hvis brugerprofiler ikke oprettes, medmindre en bruger udfylder en.
- Nemmere at arbejde med
- Altid lidt langsommere på grund af joinforbindelse (eller anden forespørgsel)
Lagring af brugerprofil som egenskaber og værdier i tabeller
*dvs. Tabel til lagring af mulige muligheder, tabel til lagring af bruger-id, option_id og værdi*
- Ingen redundante data gemt, alle data er relevante
- Mest normaliserede metode
- Langsommere at hente og opdatere data
Mit indtryk er, at de fleste websteder bruger den anden metode og gemmer profiloplysninger i en anden tabel, hvilket er almindeligt for de fleste større websteder at denormalisere databasen (twitter, facebook) for at opnå større læseydelse på bekostning af langsommere skriveydeevne.
Jeg vil tro, at det at holde profiloplysningerne i en anden tabel sandsynligvis er vejen at gå, når du ser på 50.000 poster. For at opnå optimal ydeevne ønsker du at holde data, der er skrevet stærkt adskilt fra data, der læses tungt for at sikre, at cachen kan fungere effektivt.