Nephos / MeetUs

Handle presences, vote, organize, and share your meetings
GNU General Public License v3.0
0 stars 0 forks source link

check if the meetings's associations are reliable and efficient #24

Open Nephos opened 8 years ago

Nephos commented 8 years ago

open via #8

As the UUID changed the database management, the assocations between meetings - meetings_date are no more standard. They use foreign_key and primary_key options.

A standard request on ``/meetings/:meeting_uuid/share gives:

Started GET "/meetings/c83f3390-dda3-0133-f9de-00fa5b145766/share" for ::1 at 2016-04-06 01:01:13 +0200
Processing by MeetingMakerController#show as HTML
  Parameters: {"meeting_uuid"=>"c83f3390-dda3-0133-f9de-00fa5b145766"}
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" ASC LIMIT 1  [["id", 1]]
  SQL (0.4ms)  SELECT  DISTINCT "meetings"."id" FROM "meetings" LEFT OUTER JOIN "meeting_dates" ON "meeting_dates"."meeting_uuid" = "meetings"."uuid" LEFT OUTER JOIN "user_dates" ON "user_dates"."meeting_date_id" = "meeting_dates"."id" LEFT OUTER JOIN "users" ON "users"."id" = "user_dates"."user_id" LEFT OUTER JOIN "meeting_dates" "meeting_dates_meetings_join" ON "meeting_dates_meetings_join"."meeting_uuid" = "meetings"."uuid" LEFT OUTER JOIN "user_dates" "user_dates_meetings" ON "user_dates_meetings"."meeting_date_id" = "meeting_dates_meetings_join"."id" LEFT OUTER JOIN "meeting_dates" "meeting_dates_meetings" ON "meeting_dates_meetings"."meeting_uuid" = "meetings"."uuid" LEFT OUTER JOIN "user_dates" "user_dates_meeting_dates" ON "user_dates_meeting_dates"."meeting_date_id" = "meeting_dates_meetings"."id" WHERE "meetings"."uuid" = $1 LIMIT 1  [["uuid", "c83f3390-dda3-0133-f9de-00fa5b145766"]]
  SQL (6.0ms)  SELECT "meetings"."id" AS t0_r0, "meetings"."name" AS t0_r1, "meetings"."description" AS t0_r2, "meetings"."end_at" AS t0_r3, "meetings"."user_id" AS t0_r4, "meetings"."uuid" AS t0_r5, "meetings"."created_at" AS t0_r6, "meetings"."updated_at" AS t0_r7, "users"."id" AS t1_r0, "users"."email" AS t1_r1, "users"."encrypted_password" AS t1_r2, "users"."reset_password_token" AS t1_r3, "users"."reset_password_sent_at" AS t1_r4, "users"."remember_created_at" AS t1_r5, "users"."sign_in_count" AS t1_r6, "users"."current_sign_in_at" AS t1_r7, "users"."last_sign_in_at" AS t1_r8, "users"."current_sign_in_ip" AS t1_r9, "users"."last_sign_in_ip" AS t1_r10, "users"."created_at" AS t1_r11, "users"."updated_at" AS t1_r12, "users"."roles" AS t1_r13, "user_dates_meetings"."id" AS t2_r0, "user_dates_meetings"."user_id" AS t2_r1, "user_dates_meetings"."meeting_date_id" AS t2_r2, "user_dates_meetings"."state" AS t2_r3, "user_dates_meetings"."created_at" AS t2_r4, "user_dates_meetings"."updated_at" AS t2_r5, "meeting_dates_meetings"."id" AS t3_r0, "meeting_dates_meetings"."date" AS t3_r1, "meeting_dates_meetings"."meeting_uuid" AS t3_r2, "meeting_dates_meetings"."note" AS t3_r3, "meeting_dates_meetings"."created_at" AS t3_r4, "meeting_dates_meetings"."updated_at" AS t3_r5, "user_dates_meeting_dates"."id" AS t4_r0, "user_dates_meeting_dates"."user_id" AS t4_r1, "user_dates_meeting_dates"."meeting_date_id" AS t4_r2, "user_dates_meeting_dates"."state" AS t4_r3, "user_dates_meeting_dates"."created_at" AS t4_r4, "user_dates_meeting_dates"."updated_at" AS t4_r5 FROM "meetings" LEFT OUTER JOIN "meeting_dates" ON "meeting_dates"."meeting_uuid" = "meetings"."uuid" LEFT OUTER JOIN "user_dates" ON "user_dates"."meeting_date_id" = "meeting_dates"."id" LEFT OUTER JOIN "users" ON "users"."id" = "user_dates"."user_id" LEFT OUTER JOIN "meeting_dates" "meeting_dates_meetings_join" ON "meeting_dates_meetings_join"."meeting_uuid" = "meetings"."uuid" LEFT OUTER JOIN "user_dates" "user_dates_meetings" ON "user_dates_meetings"."meeting_date_id" = "meeting_dates_meetings_join"."id" LEFT OUTER JOIN "meeting_dates" "meeting_dates_meetings" ON "meeting_dates_meetings"."meeting_uuid" = "meetings"."uuid" LEFT OUTER JOIN "user_dates" "user_dates_meeting_dates" ON "user_dates_meeting_dates"."meeting_date_id" = "meeting_dates_meetings"."id" WHERE "meetings"."uuid" = $1 AND "meetings"."id" IN (4)  [["uuid", "c83f3390-dda3-0133-f9de-00fa5b145766"]]
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 1]]
   (0.2ms)  SELECT COUNT(*) FROM "meetings" WHERE "meetings"."user_id" = $1 AND "meetings"."id" = $2  [["user_id", 1], ["id", 4]]
  Rendered meeting_maker/_form_date.html.slim (1.1ms)
  User Load (0.4ms)  SELECT DISTINCT "users".* FROM "users" INNER JOIN "user_dates" ON "users"."id" = "user_dates"."user_id" INNER JOIN "meeting_dates" ON "user_dates"."meeting_date_id" = "meeting_dates"."id" WHERE "meeting_dates"."meeting_uuid" = $1  ORDER BY "users"."id" ASC  [["meeting_uuid", "c83f3390-dda3-0133-f9de-00fa5b145766"]]
  CACHE (0.0ms)  SELECT COUNT(*) FROM "meetings" WHERE "meetings"."user_id" = $1 AND "meetings"."id" = $2  [["user_id", 1], ["id", 4]]
  CACHE (0.0ms)  SELECT COUNT(*) FROM "meetings" WHERE "meetings"."user_id" = $1 AND "meetings"."id" = $2  [["user_id", 1], ["id", 4]]
  CACHE (0.0ms)  SELECT COUNT(*) FROM "meetings" WHERE "meetings"."user_id" = $1 AND "meetings"."id" = $2  [["user_id", 1], ["id", 4]]
  CACHE (0.0ms)  SELECT COUNT(*) FROM "meetings" WHERE "meetings"."user_id" = $1 AND "meetings"."id" = $2  [["user_id", 1], ["id", 4]]
  CACHE (0.0ms)  SELECT COUNT(*) FROM "meetings" WHERE "meetings"."user_id" = $1 AND "meetings"."id" = $2  [["user_id", 1], ["id", 4]]
  CACHE (0.0ms)  SELECT COUNT(*) FROM "meetings" WHERE "meetings"."user_id" = $1 AND "meetings"."id" = $2  [["user_id", 1], ["id", 4]]
  CACHE (0.0ms)  SELECT COUNT(*) FROM "meetings" WHERE "meetings"."user_id" = $1 AND "meetings"."id" = $2  [["user_id", 1], ["id", 4]]

I guess the request can me improved. To scrutinize.