Gallery of database schema diagrams of open-source packages
drawsql.app
drawsql.app
Then it clicked, these collected diagrams could be useful for other developers to use as references as well. And maybe bring some SEO juice to the DrawSQL over the long-term. Hence the idea to curate this gallery - A central place to browse & discover DB schemas.
First time posting in HN, let me know what you think, or if you have a schema to suggest that should be added. Thanks!
I would use it in a heart beat if there were an option for a one time license / activation fee and the ability to use it offline without associating the graphs with an account & communicating them back to a central server. my guess is that there may be more folks like me who work at companies that require a certain level of anonymity or security regarding sensitive information like database schemas. just a thought!
Maybe that market isn't that interesting to you, but the value prop for 100 bucks a month (since most real schemas that have the problem of requiring visualization are going to be >50 tables) for one schema that I then get to go cancel or w/e isnt that strong - It'd be enough that I'd consider writing that graphiz layer I keep screwing around with.
My motivation for building this stemmed from the use-case of smaller-medium dev teams. We were using offline tools (e.g. MySQL Workbench) as part of our dev process and trying to keep it updated as documentation. Which was quite a nightmare to keep in sync between different devs. In this case having a central server was the silver bullet.
Curious - do you all currently use other tools (eg: workbench) for this?
Maybe not an offline tool, then, but rather a hostable server (or isolated enterprise deployment, if you must), rather than a central cloud service. A virtual-appliance Docker image (that you can keep updated upstream) would be ideal, I think.
For example, if you store the schema representation as a logical dump (CREATE statements) in a git repo, syncing/sharing becomes trivial. This also provides a branch workflow for collaborative editing, and the commit history serves as an authoritative changelog.
From this point of view, it could be compelling to have an offline visualization tool that simply operates on top of the current local filesystem state of a repo. Ideally this could be paired with a self-hosted server/daemon that can generate a visualization of any arbitrary commit of a remote repo on GitHub, GitLab, etc.
Disclosure: I'm the author of an open source schema management tool https://skeema.io which is designed to support a repo-driven workflow for DDL execution. So I have a heavy bias towards storing schemas declaratively, as repos of CREATE statements.
I can see a schema definition being “secret sauce” (i.e. a competitive advantage), but I can’t see it being literally dangerous for the company to publish (e.g. because it contains customer PII), unless you’re doing something very strange.
...in which case, that makes me want to know about the schema even more! There’s probably some interesting lessons in there, if just “don’t do this; we deeply regret that we did.”
In quant finance, for example, a DB schema might reveal details of a proprietary strategy that the firm does not want a third party to see.
I'd imagine it can also be a legal concern. For example, a schema may reveal presence of a soft-delete column, which conceptually violates GDPR. If the schema is made public, this could cause unwanted legal attention, even if the column is no longer actively used by any application code.
One comment: I can't figure out how to make the diagrams full screen, and I don't like viewing it in that small box. Perhaps offer a way to maximize or download for offline viewing?
On making it fullscreen, that's such an useful/obvious thing to include in hindsight. Thanks for the suggestion! For now you can actually click on the "DrawSQL" logo within that opens it in full screen in a new tab
+1 that the logo affordance is too subtle to make the full feature set easily discoverable from a schema page.
The Export function in the full editor is nice to see. Once the JSON support is there, it would be fun to analytically compare schemas from function-set similar applications.
As a suggestion for the site: the schemas are to small, most screenestate is wasted for empty space or side-features. Adding some fullscreen or full-tab-button to let the schema make use of more space would be very useful for studying them.
Great suggestion - I agree, having an easy way to view the diagrams in full screen would be so useful and solve that. For now you can actually click on the "DrawSQL" logo within that opens it in full screen in a new tab.
> Database schema for
> Hacker News
> Social news website: Sample database schema diagram for Hacker News, from open-sourced Pythonic News
Seems a little misleading. It's the schema from a clone, not a the original Hacker News site that most people think of when they see the title.
Auto-layout would be a useful feature, a button to click to re-arrange the table cards in a nice way (unless I missed it).
Also: Made in Vue! I <3 Vue
Auto-layout would indeed be nice might be a bit of a challenge tech-wise. Thanks for suggesting it!
It also looks slicker and handles a bit easier, so I think I'm going to switch!
Also, could you please change the name of the Hacker News one? As commenters have pointed out, it's misleading.
Also, fixed up the naming for the HN template as well, cheers!
perhaps tools like datagrip make more sense for you ? Especially if you already are in jetbrains ecosystem (although they have annual pricing as well, if you don’t renew you get last version your subscription covered Perpetually )
Any reference material to share?
It's almost like these things were designed without the intention of having to spend a fortune on consulting services.
These are simple tables for simple services, like one of these diagrams is legit the boilerplate of Laravel and another is Spark which is a SAAS boilerplate built on top of laravel.
Very few of these are actual software in use, most seem to be boilerplates from different systems. And even the actual software tend to be lower level systems that require very little tables.
You are comparing "enterprise software" of who knows what with a random PHP boilerplate?
Spark
For me it's much harder to plan for NoSQL databases. It's relatively easy to draw ER diagram for a relational database, as all in my mind are the problem and data model. With NoSQL database however, I need to take into account how the client(s) works at the same time.
However, I often work in a one man band, and need to push out production ready system in weeks. In these cases, as a compromise, I choose a managed NoSQL database as it requires less code and DevOps work to be up and running. It's not ideal.
Are they showing Unified Modeling Language (UML) or Entity Relation Diagrams (ERD) ? or something else that is new to DrawSQL ?
Nice. Meta-nice.
How would you compare this to https://dbdiagram.io?
dbdiagram is freeform text-based and parses that to generate the diagram, while in DrawSQL there's an editor supported by keyboard-shortcuts to do the creation.
Overall they achieve similar outcomes. Personally I think it's a well-built tool too!
Super cool
In the future there will be smarter ways to infer them, e.g. searching for {table_name}_id etc. In fact I did use a crude script that did just that when curating the diagrams for the gallery. Just need to build a nice frontend for it.