Disons que j'ai une base de données similaire à ce qui suit:Comment gérer les données de mise à jour dans un schéma de base de données de relations un-à-plusieurs?
Table: People
id | name | age
---+------+-----
1 | dave | 78
Table: Likes
id | userid | like
---+--------+-------
1 | 1 | apples
---+--------+-------
2 | 1 | oranges
---+--------+-------
3 | 1 | women
Quelle serait la meilleure façon de gérer la mise à jour des données daves
? À l'heure actuelle, je fais ce qui suit:
Update his age
UPDATE People SET age = 79 WHERE id = 1;
Update his likes
DELETE FROM Likes WHERE userid = 1;
INSERT INTO LIKES (userid, like) VALUES (1, 'new like');
INSERT INTO LIKES (userid, like) VALUES (1, 'another like');
supprimer toutes les données des utilisateurs de la table, puis readd leur nouveau genre de choses. Cela semble inefficace. Y a-t-il un meilleur moyen?
Vous dites "Je supprime toutes les données des utilisateurs de la table, puis réintègre leurs nouvelles données." impliquant que vous ne connaissez que la liste complète des choses qu'ils aiment et non ce que votre DB détient. Sans interroger la base de données et comparer les listes, comment pouvez-vous savoir quoi supprimer? (c'est-à-dire des objets individuels que la personne n'aime pas). Si vous ne souhaitez pas effectuer de comparaison, la suppression de tous et l'insertion est une méthode valide. Assurez-vous simplement de reconstruire les index et de mettre à jour les statistiques de temps en temps, car ils seront fragmentés. – Tony
C'est une mauvaise idée de stocker l'âge - beaucoup mieux de stocker la date de naissance. –