leaderboard-backend-go icon indicating copy to clipboard operation
leaderboard-backend-go copied to clipboard

Create minimal schema

Open Matt-Hurd opened this issue 3 years ago • 7 comments

Thank you Ted for the sicknasty epic brainstorming. unknown

Matt-Hurd avatar Jul 11 '21 03:07 Matt-Hurd

Is Game\Release/Platform an easy thing to track at all? Some games have multiple releases within one platform. That part in particular seems a bit difficult to me. I suppose we don't need it for the Leaderboard and below to work?

zdylag avatar Jul 12 '21 01:07 zdylag

I think there was a lot of discussion from the Discord about the Run-Time-Idk-TimingMethod tables.

Some ideas that came up:

  • Having a columnar data store of sorts for the Run info (Time, Score, ...) where most columns in that table were null.
  • Having multiple tables with a func wrapping them.
  • Have up to many rows per Run that contain int64, dataTypeEnum.

zdylag avatar Jul 12 '21 01:07 zdylag

Few thoughts I have for stuff we should have based on my experience with src. Separating these out into things I think are mandatory for a minimal schema and those that might be something to think about later: Minimal

  • Run should have some field for the link to the run
  • Game should have several fields for descriptions, resources, links, etc.
  • Might also want both Categories and Sub Categories. For example if a game allows for Co-Op, the Any% category can have sub categories for 1P and 2P, as well as any other potential sub-categories that can be defined by mods (Could live without it for now, but could be a pain to implement later) Non-Minimal
  • The run itself should also have a field for version the game is played on, in the case where re-releases share a leaderboard
  • Could also have a value for if a category is considered "main" or "side" to determine how it's accessed. Likely Main categories would all be featured prominently while side categories (which could be numerous) would have a drop down or some alternate way of access

RSN-Bran avatar Jul 12 '21 04:07 RSN-Bran

Thanks for your input, @RSN-Bran. Here are my thoughts.

Run should have some field for the link to the run

excellent idea. Adding it now.

Game should have several fields for descriptions, resources, links, etc.

For now, these can simply be in the Leaderboard Rules column

Might also want both Categories and Sub Categories. For example if a game allows for Co-Op, the Any% category can have sub categories for 1P and 2P, as well as any other potential sub-categories that can be defined by mods (Could live without it for now, but could be a pain to implement later)

yeah, this is a good idea but I'm going to propose that we put it off until v1. For now, run variables may be used for this purpose

The run itself should also have a field for version the game is played on, in the case where re-releases share a leaderboard

This has been added. Check out the dynamically updating version here

Could also have a value for if a category is considered "main" or "side" to determine how it's accessed. Likely Main categories would all be featured prominently while side categories (which could be numerous) would have a drop down or some alternate way of access

I'm gonna suggest putting this off until v1 as well. Wouldn't be that hard to add though.

re: @zdylag

Is Game\Release/Platform an easy thing to track at all? Some games have multiple releases within one platform. That part in particular seems a bit difficult to me. I suppose we don't need it for the Leaderboard and below to work?

Since Releases is a join on Games, Platforms, and Leaderboards, it means we can easily have multiple releases for a game on the same platform. However, I kind of agree that this may be unnecessary for MVP. What do you think, @Matt-Hurd ? I think it wouldn't hurt to simplify the relationship.

TheTedder avatar Jul 17 '21 02:07 TheTedder

I've made several tweaks and I'm ready to move forward with this structure if nobody has any objections. image

TheTedder avatar Jul 18 '21 01:07 TheTedder

Could we add a "Pronouns" field to the User object? It's important to a lot of folks and it's something SRC already supports in a limited capacity. The options we offer for populating it are probably a frontend question but I feel like it would be a good addition to the model regardless of the user's view.

Tempystral avatar Jul 26 '21 01:07 Tempystral

The user already has an "about me" field where they can write all their personal details.

TheTedder avatar Jul 26 '21 01:07 TheTedder