Joinable and requestable groups had significantly longer execution
times for Group.evaluate prior to this change, as we were
dereferencing the entire join_members and request_members lists from
the database when all we needed to do was check if the user was in it.
We switch to storing only the character names, which are guaranteed to
be unique, and which doesn't require expensive dereferencing while
still meeting all of our intended use cases (being able to easily check
if a character is in the list).
Joinable and requestable groups had significantly longer execution times for Group.evaluate prior to this change, as we were dereferencing the entire join_members and request_members lists from the database when all we needed to do was check if the user was in it. We switch to storing only the character names, which are guaranteed to be unique, and which doesn't require expensive dereferencing while still meeting all of our intended use cases (being able to easily check if a character is in the list).
Signed-off-by: Tyler O'Meara Tyler@TylerOMeara.com