Obvious database hot take: your stored data always has a schema, unless your code neither reads nor writes it as anything except an opaque blob. What NoSQL changes is how many places that schema exists and how easy it is to have multiple schemas for your data.

(SQL allows multiple schemas too. You just change what fields mean in your code, reuse them, extend them, etc etc.)

Blog post: Your databases always have a schema (in which I go on about this issue at much more length than my original toot, because apparently this is a surprise hot button for me)

@zaitcev I usually think of views as something different, where you're not fundamentally changing what the stored data means, just how it's presented. This may not be the right view, especially if you get into computed views and so on. But even then it sort of feels like computed getters and setters in eg Python.

@zaitcev I guess my dividing line is 'do things that interpret the data without seeing your view explode, or can they still work correctly with what's there?' If the answer is no, I think that you have multiple (and incompatible) schemas, as people don't like about NoSQL.

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!