Wieder einmal bin ich sehr beeindruckt von der Leistung von Sequelize!
Stellen wir uns vor, ich möchte alle « Standorte » mit ihrem zugehörigen Benutzer abrufen.
Ich mache:
erhalte:
Aber das Interessante ist nicht das! Es ist die Art und Weise, wie Sequelize das unter der Haube macht.
Manche ORMs führen in dieser Situation X Abfragen aus:
- Ein
SELECT *um alle Zeilen abzurufen - Dann ein
SELECTpro Fremdschlüssel, um das verschachtelte Attribut abzurufen
Hier führt Sequelize eine einzige Abfrage aus
SELECT `t_location`.`id`, `t_location`.`user_id`, `t_location`.`latitude`, `t_location`.`longitude`, `t_location`.`altitude`, `t_location`.`accuracy`, `t_location`.`created_at`, `t_location`.`updated_at`,
`user`.`id` AS `user.id`, `user`.`firstname` AS `user.firstname`, `user`.`lastname` AS `user.lastname`, `user`.`email` AS `user.email`, `user`.`birthdate` AS `user.birthdate`, `user`.`language` AS `user.language`, `user`.`password_hash` AS `user.password_hash`, `user`.`role` AS `user.role`, `user`.`created_at` AS `user.created_at`, `user`.`updated_at` AS `user.updated_at`
FROM `t_location` AS `t_location`
LEFT OUTER JOIN `t_user` AS `user` ON `t_location`.`user_id` = `user`.`id`;
Dann setzt es das verschachtelte Objekt mit seinem « table.attribut »-Format in den « AS » zusammen
Das ist super leistungsfähig!














