I'm putting together a schema for a progressive story that will track user choices. Because it will unfold over at least a year, I need a schema that is safe to handle constant additions. I have a feeling that constantly adding new columns to existing tables is bad practice. My other consideration was that, using Postgres, I could store a JSON that could be read and replaced over time, but then nesting might be an issue if I wanted more complexity.
Are the best practices for creating a schema in which not all eventual variables are known?