Hacker News new | ask | show | jobs
by nightski 1445 days ago
I think a lot of the trouble stems from the fact that databases do not have sum types and there is no way to encode a "None" type without hacks. NULL is the only reasonable option in a lot of cases.
1 comments

Yeah, in hindsight the world would be a slightly better place if SQL didn't include NULL, but instead "UNKNOWN" and "NONE", with "NONE = NONE" being true, and "UNKNOWN = UNKNOWN" being unknown.
Or have an Option (or Maybe) type. This is how modern programming languages solve the nil issue, I don't see a reason why a database couldn't take the same approach.
When would NONE show up and when would UNKNOWN show up?
NONE would mean “there is no value”, and UNKNOWN “there might be a value, but I don’t know what it is”.