6 ms·
Disclaimer: I don't want to minimize your achievement or be overly critical of the tool you've built. I've used a lot of relational database modeling tools in t
by curun1r 10y ago
Disclaimer: I don't want to minimize your achievement or be overly critical of the tool you've built. I've used a lot of relational database modeling tools in the past and what you've built looks perfectly capable for the job. But I clicked on your link hoping for something very different and didn't find it. So hopefully others can point me in the right direction if what I am looking for exists.
The crux of my disappointment stems from you having left out a word in the description of your tool. It's a Relational Database Diagramming tool...the Relational aspect of it making it significantly less useful for me. I've worked with Relational databases for close to 30 years and I find that I'm able to design schemas in my head without the need for a tool. On occasion, a tool that's able to reverse engineer a visualization of the model from the schema can be useful in quickly coming up to speed on an existing schema, but even that isn't essential.
Where I think tools would really help me is in designing for non-relational databases. It's a harder problem, since those databases are often schemaless, but that would make a design tool all the more useful, since those designs could act as documentation that's often unnecessary in the relational world where the schema is readily available.
So can anyone point me towards a visual design tool for non-relational databases, document, kv or otherwise?
- voycey 10y agoCrayons?
- onion2k 10y ago"schemaless databases" are somewhat badly named - there is a schema, in the sense that something knows what the constraints on the data are, but it's not defined in the database itself. It's defined in the code that interacts with the data in the database. With that in mind, the thing that you actually need to diagram (or model) is the data, not the database. What your diagram needs to tell you is what data there is, what type of data it is, and what that means. That doesn't change regardless of what technology you're using.
- rms_returns 10y agoThanks for your views, I'm the author of the linked VA tool. One of the primary aspects of this tool besides diagramming is to automate code generation. Presently, it exports the diagram to SQLAlchemy classes and raw mysql format. The idea is that once you design the tables in your head, you should be able to seamlessly translate it to an actual database format like mysql, pgsql, etc. and don't have to waste much time on that! As for "schema-less" diagramming tools, I think your best bet will be a mind-map. There are many mind-mapping software available including GPL ones like Freemind. What it does is take a central idea and create branches from that root. For example, Database will split into Relational/Non-relational branch. Relational will split into mysq/pgsql and non-relational will split into mongodb/couchdb, etc. To the best of my knowledge, this is how non-relational databases like mongodb work document inside a document inside a document, right?
- lolive 10y agoFor graph databases, I designed a tool to visually describe queries that can be applied upon a DB. It introspects the current data model and display it as entities and relationships, then with some drag n drops, you can visually design the queries that can legally be applied upon that data model, therefore on this database. It is ok for any RDF database with SPARQL endpoint. It could be simply extended to manage Neo4J and Cypher. Comments welcome. PS: cf http://datao.net/ http://datao.net/
- curun1r 10y agoThat looks awesome. Tools like this are why I asked the question. Thanks for responding!
- DougWebb 10y agoTry GraphViz. You write a text document that defines your record/object types, and then specifies the relationships. Basically just a directed graph, in an easy syntax with a reasonable amount of control over the nodes and edges. When the spec is done you run the tool on it and the graph is generated for you. One thing I like about GraphViz is that it's really easy to write analysis software that generates the spec document. My most recent use case is parsing the sln and csproj files in huge c# code repos, figuring out cross-project dependencies based on references, graphing a dependency tree and a circular reference graph, and creating an msbuild file that optimizes build order. The visualizations are really useful for understanding the results.