this post was submitted on 16 Dec 2025
1390 points (99.3% liked)

Programmer Humor

28345 readers
928 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] NullPointerException@lemmy.ca 113 points 3 weeks ago (5 children)

Why would Santa need two separate tables for this?

[–] spiffpitt@lemmy.world 150 points 3 weeks ago (1 children)

don't underestimate database design in production environments

[–] phorq@lemmy.ml 44 points 3 weeks ago

Exactly, Santa's always watching and audit logs get complicated

[–] joyjoy@lemmy.zip 104 points 3 weeks ago* (last edited 3 weeks ago) (6 children)

I would make two separate views. 

CREATE VIEW NiceList AS
 SELECT * FROM Children
  WHERE behavior = 'nice' 
   AND parent.income > 40000; 
CREATE VIEW NaughtyList AS
 SELECT * FROM Children
  WHERE behavior = 'naughty'; 
[–] NullPointerException@lemmy.ca 68 points 3 weeks ago

The income is a nice touch.

[–] criss_cross@lemmy.world 30 points 3 weeks ago (1 children)

The poor kids can’t even afford coal and fall through the cracks.

[–] laurelraven@lemmy.zip 11 points 3 weeks ago (1 children)

Only the nice ones, the naughty poor children get free coal

[–] naeap@sopuli.xyz 4 points 3 weeks ago* (last edited 3 weeks ago) (1 children)
[–] RustyShackleford@programming.dev 5 points 3 weeks ago (1 children)

The poor nice ones get beaten by the naughty rich ones.

[–] ulterno@programming.dev -1 points 3 weeks ago

... and by the "nice" rich ones.

[–] KairuByte@lemmy.dbzer0.com 8 points 3 weeks ago (3 children)

Why are we using magic strings for behavior?

[–] joyjoy@lemmy.zip 28 points 3 weeks ago (2 children)

Feel free to fork my comment. 

[–] Tja@programming.dev 11 points 3 weeks ago

Does Santa accept PRs?

[–] uranibaba@lemmy.world 2 points 1 week ago
CREATE VIEW NiceList AS
 SELECT * FROM Children
  WHERE behavior > 2000
   AND parent.income > 40000; 
CREATE VIEW NaughtyList AS
 SELECT * FROM Children
  WHERE behavior <= 2000; 
[–] TheOctonaut@mander.xyz 15 points 3 weeks ago (1 children)

It's an ENUM and other people have to read this fucking codebase too, Brian!

[–] Olap@lemmy.world 5 points 3 weeks ago (1 children)

I've a DBA who would insist on this being in a dimension table and using a foreign key constraint instead of just a fucking string

[–] luciferofastora@feddit.org 5 points 3 weeks ago

I like your DBA!

Users probably don't.

[–] djmikeale@feddit.dk 10 points 3 weeks ago

He used to have an is_nice bool but consultants convinced Santa it isn't future proof enough to capture the nuances of kids behaviour in today's world, such as "nice but always is really smug about it". But the consultants kept making PowerPoints instead of updating the backend, so now Santa also has added a new value to behaviour: "consultant-like"

[–] ryannathans@aussie.zone 7 points 3 weeks ago (1 children)
[–] joyjoy@lemmy.zip 5 points 3 weeks ago

Omitted for brevity. 

[–] Willy@sh.itjust.works 5 points 3 weeks ago

stop static “variables”! use COL. congress should do the same for setting minimum wage. eg parent.income > COL

[–] menas@lemmy.wtf 3 points 3 weeks ago (1 children)

which default currency shall santa use ? Dollar have no sense, if presents are free. However Yuan may ease things with providers.

[–] joyjoy@lemmy.zip 8 points 3 weeks ago

He's in the north pole, so probably Canadian dollars, Russian rubles, or Danish krone (Greenland) 

[–] luciferofastora@feddit.org 14 points 3 weeks ago

Legacy system. Someone once started curating two spreadsheets for each year because they didn't know better. They had different formats too, because the naughty one listed separate entries for each naughty deed and a column describing it. Whenever they added something to that list, they manually checked and deleted the kid from the nice list.

Eventually, the amount of children they're responsible for got too large, so they learned some basic SQL and built themselves a database. To import the legacy lists and keep their workflow, they built separate tables. Just be glad they eventually learned how to filter by year and stopped creating new schemas for every year.

[–] ilinamorato@lemmy.world 10 points 3 weeks ago* (last edited 3 weeks ago)

Relational database. He's got children, which joins to naughty and nice on childid and both record their status each year so that he can monitor trends.

[–] chocrates@piefed.world 6 points 3 weeks ago

Once you get a few thousand columns wide you create a naughty_list2 for the new data