This actually gave me an idea. Over break I wanted to practice dB design and entity framework. Designing a database and interface for santa to track kids naughty or nice could be a fun/interesting way of doing it.
Just FYI, LinqPad is a really neat tool for messing around with EFCore. I use it all the time for testing ideas or doing quick tasks that I don't want to spin up a new project for.
I think you would have a table of "activities" with a value of how good/bad each is. So like cleaning your room would be +5 but crying in a store because mommy wouldn't buy you a toy would be - 15. Then you have a table for children and each child starts with 0 in January and then for each activity the child does there naughty/nice value gers adjusted. December 24 Santa runs a query on the dB and gets a list of every child with a positive value.
Keep in mind I currently feel sick and put about 5 minutes of thought into thus.
Actually I think there should be a intermediary table as a history of activities of each child. Like child table is I'd, name, age, address, and naughty/nice value, activities would be Id, description, and good/bad value. Then a history table of ID, child_id, activity_id. So santa can recalculate a child's naughty/nice value to "check it twice"
Redundancy is key. There should always be two methods for calculating a child's ANNS (Aggregate Naughty Nice Score). I propose a conventional method where activities are graded from -5 to +5 where a child's ANNS is the sum of all their previous activities, this would be a child's historical ANNS. And I propose a second system where only the activities performed within the last 365 days of calculation are considered, to account for children who have drastically changed behavior year to year, this would be a child's current year ANNS. I think the current year ANNS would hold more weight in Santa's judgement but looking at the historical ANNS in conjunction with the current year could help provide a better picture of a child's character.
I mean in a certain light, christmas presents are a yearly bonus for children and Santa checking his list is a management review of the child's performance...
Kids will have their wish list that's another table that we wanna reference. Then of course do we have the name of the toys in the table, or simple reference "Toys" table.
Also need an address table as some kids get Santa gifts at more than one house...
I didn't even consider incorporating toy distribution... At what levels should kids get a small gift(a toy or game) vs a large gift(bike, game system etc).
In a real world scenario I would probably spilt this between 2 databases.. One for kids ("with a nice score of 2 you get a toy of value 4 or less") and one for toys ("the toys available with a value less than 4 are...")