Cool, another computer nerd into ceramic and glazes!
Glazes is actually glass where you mix all kinds of powdered element from the periodic table and melt them at 1200C to hopefully get a result you like.
A unusual kind of chemistry.
I am more interested in the glazes and the results he got than the crud app and the DB. Just read it in diagonal, but I don't see why a simple Django app wouldn't take care of this easily (with admin) and you use sqlite for local use case.
I'm about to assemble my Cerambot 3D printer and get into the game too :D
But yeah, the year is 2024, and the idea of using a relational database model to store relations is new again. Otherwise, this is a poster use case for SQLite.
CNC pottery is so much fun. Highly recommend getting into Rhino / Grasshopper if you aren’t already. You can go as deep as you want, and programmatically generating gcode means the world is your oyster (or at least the clay is, or at least when it cooperates)
I procrastinated on getting into Rhino/Grasshopper because it's not FOSS, and now that I'm about to join the computational geometry team of a competing suite specifically focusing on parametric 3D for manufacturing, it might take even longer :D
Location specifies where the combo is applied to the part; priority specifies ordering of the glaze layers (glazes whose order doesn't matter have the same priority).
The only thinking that needs to be done is understanding that you don't mix glazes and combinations in a single project, but a project has a set of combinations associated with it, some of which may only have one glaze.
Writing the requisite SELECT queries (getting all pieces that use a glaze, or vice versa) is left as an exercise to the reader (which, I hope, is straightforward - but the same can be said of the schema).
This article does a lot of mental gymnastics to avoid using a relational database to store relations. NoSQL has its places (e.g. sometimes, a KV store is a KV store), but this isn't it.
Sometimes I feel like the NoSQL hype did some collective damage to the way people think about data. But then again, I'm not a database architect, so what do I know.
I would definitely use a simple relational model for this. Or probably in practice just download the whole dataset and do everything locally because it's going to be so small.
But I suppose this is an ad for the writer's graph database anyway.
>doesn't make sense to me in terms of building what they wanted
What is it that you think they wanted, and why doesn't keeping the data locally make sense?
If what they wanted is learning a graph DB API, then sure. Otherwise, please elaborate.
To me, this looks like a perfect fit for a SQLite database (see my other comment). Their entire dataset has a smaller size than the HTML page you're reading right now.
If they wanted cloud sync, they could simply send the entire thing over the wire. Or, you know, use SQL.
Though unless they're running a custom-order ceramics factory, that'd be an overkill. But hey, they'd learn why SQL is useful from that.
I suggest you check out clayart mailing list:
https://lists.clayartforum.com/mailman/listinfo/clayart
You can get great feedback from some of the best potters in the world. Also the authors of one of the definitive books on Cone 6 glazes hang out there.
I would really like to see a visual of how these different treatments lead to different results. To see the 'graph', with the actual end results. I know at top of article there were some pictures, maybe I'm missing it and it is linked somewhere.
You would have been done with maybe 1/10 the code if you went with SwiftData and targeted ios17 as the base os as that is also a graphdb, you don’t really need a server for this type of app. Everything local would be good enough.
Glazes is actually glass where you mix all kinds of powdered element from the periodic table and melt them at 1200C to hopefully get a result you like. A unusual kind of chemistry.
I am more interested in the glazes and the results he got than the crud app and the DB. Just read it in diagonal, but I don't see why a simple Django app wouldn't take care of this easily (with admin) and you use sqlite for local use case.