Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Labbar och grupper: id eller nummer #169

Open
jesjos opened this issue May 16, 2012 · 8 comments
Open

Labbar och grupper: id eller nummer #169

jesjos opened this issue May 16, 2012 · 8 comments

Comments

@jesjos
Copy link
Member

jesjos commented May 16, 2012

I princip har vi ju sagt att vi alltid vill referera till labbar och grupper med deras relativa nummer.

En grej som jag tänkte på dock:

Kan det finnas situationer då vi tar fram labbar eller grupper utan att de är scopeade under en kurs?
I den situationen finns inga relativa nummer och approachen pajar.

Om vi inte hittar några undantag eller tycker att undantagen är för få för att vi ska orka bry så blir det väl skäl att köra en liten sprint där vi ser till att skriva om controllers så att dom gör "rätt".

@Tarrasch
Copy link
Contributor

Jag förstår egentligen inte vad fördelarna är med id vs nummer enligt databasfolket. Någon kanske vill elaborera på det?

Däremot är jag rätt säker på att i samtliga fall så är både labbar och labgrupper alltid kopplade till en kurs. Så visst kan vi alltid köra med nummer om vi vill det iaf?

@jesjos
Copy link
Member Author

jesjos commented May 26, 2012

Jag körde lite naiva benchmarks:

Benchmark.measure {GivenCourse.find(11).labs.where(number: 1)}
Benchmark.measure {Lab.find(1)}

Båda querys ger samma labb.
Körde båda querys 100 gånger och tog sedan medelvärde på det. Det skiljer 1 ms i medelvärdet – id är "bättre".

@jesjos
Copy link
Member Author

jesjos commented May 26, 2012

Enda anledningen att köra id är väl att det är konvention, antar jag.

@oleander
Copy link
Member

@Tarrasch Vi använder relativa nummer för att användaren ska få enklare och mer lättlästa labb- och grupprelaterade url:er. Tänkt dig själv en url som denna. http://water.com/courses/tda123/groups/1/labs/4 vs http://water.com/courses/tda123/groups/122432/labs/1231234. En databasmupp skulle även argumentera för att groups#id är redundant. En grupp kan unikt identifies m.h.a given_courses#id och groups#number, på samma sätt som att en LabHasGroup kan tas fram m.h.a labs#number och groups#number.

@jesjos Ang benchmarken. Var inte de ganska givet? Jag menar, den ena raden kör en query, den andra två. En annan, möjligen mer korrekt AR-lösning vore GivenCourse.includes(:labs).where("labs.number = ?", 1).find(11).labs. Den är dock garanterat långsammare än Lab.find(123) – något du aldrig kommer i från. Rekommenderat är f.ö att sätta ut lite index innan dessa tester görs – annars har föregående query inte en chans.

Sedan så kan jag inte riktigt se när vi vill visa en labb löst utan en kurs.

@jesjos
Copy link
Member Author

jesjos commented May 26, 2012

@oleander Jag körde testerna på kul, inte för att bevisa något.

@Tarrasch
Copy link
Contributor

@oleander Det låter vettigt det du säger.

I vilket fall, jag lutar åt att köra nummer genomgående. Förresten, vad händer om en examinator skapar labbar i fel ordning? Kommer "första labben" ha nummer 2 medans "andra labben" ha nummer 1? Vad tycker @water?

@oleander
Copy link
Member

@Tarrasch Skapas labb ett efter labb två så kommer labb två att få number = 1.
En inställningspanel där möjligheten finns att ändra detta vore bra.

@jesjos
Copy link
Member Author

jesjos commented May 27, 2012

+1 på föregående talare. Vi bör fundera ut ett sätt att ändra labbnummer. Dock farligt om någon påbörjat arbetet...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants