3 ms·
This looks great, I'll definitely give it a try. As many mentioned already, having classic columns and a JSON(B) column seems to be a common solution. How do y
by sberder 2y ago
This looks great, I'll definitely give it a try.
As many mentioned already, having classic columns and a JSON(B) column seems to be a common solution.
How do you handle data validation for the JSON documents?
My current project uses Django for metadata. I've been thinking about creating a layer similar to model fields in Django. You would declare a JSON "model" through those fields and assign it to the actual model JSON field.
- throwaway76324 2y agoYou can just specify a model/DTO object and serialize it as JSON when saving. Many frameworks do that automatically so you don't need to think about it. At work we just annotate the field in the model as a json-field, and the framework will handle the json-conversion automatically and store the other fields in the model as regular database columns. pseudo code (to not trigger language wars): class Foo { @Id UUID id; String name; @Json MyCustomModel model; } Adding fields is not an issue, as it will simply be missing a value when de-serializing. Your business logic will need to handle its absence, but that is no different than using MongoDB or "classic" table columns
- sberder 2y agoThat's a very low cost approach, I love it! I still think the Django ecosystem would benefit from a standardized/packaged approach including migrations. I'll ponder a bit more
- oskar_dudycz 2y agoThank you! I'm planning to add support to JSON schema and run the validation upon insert/update operation.