As I've been going through I've discovered various things where the names aren't exactly ideal, following the idea of the the name should reflect the business concept it models. This is mostly been true in the models, so that's what I'm focusing on. In general, we have a bunch of join tables that are basically just named "relation" which is a bit non-domain modelled.
ContestRelation
Suggested rename: ContestRegistration
ContestRelation is a mapping user to a contest as a competitor. If describing this situation to another human I'd probably refer to that person as a competitor or registrant, so the relation between the contest and the user should probably reflect that. I suspect a better name might be contest_registration. Some of the column names are bit inconsistent too, for example the contest uses start_time and end_time (fine) but the relation uses started_at (past tense) and finish_at (future tense).
As I've been going through I've discovered various things where the names aren't exactly ideal, following the idea of the the name should reflect the business concept it models. This is mostly been true in the models, so that's what I'm focusing on. In general, we have a bunch of join tables that are basically just named "relation" which is a bit non-domain modelled.
ContestRelation
Suggested rename: ContestRegistration
ContestRelation is a mapping user to a contest as a competitor. If describing this situation to another human I'd probably refer to that person as a competitor or registrant, so the relation between the contest and the user should probably reflect that. I suspect a better name might be contest_registration. Some of the column names are bit inconsistent too, for example the contest uses start_time and end_time (fine) but the relation uses started_at (past tense) and finish_at (future tense).