I have this fields:
The usual contract is:
NULLmeans "no information available".
''means "there is information available. It's just empty."
Beyond this point there is much philosophical discussion since the invention of
NULL in any language, not just SQL.
The only technical point here is: In PostgreSQL
NULL can be stored more efficiently than a string of length zero. If that really matters in your case ... we cannot know.