3 ms·
I'm amazed how simple it is. I worked on corporate apps that have much more complex database schema. I think there's something to learn about the one from wikip
by dan_sim 18y ago
I'm amazed how simple it is. I worked on corporate apps that have much more complex database schema. I think there's something to learn about the one from wikipedia : well designed ideas create well designed databases.
- CalmQuiet 18y agoI'll second that. I always like pouring over schemas that have been tested by heavy use - and wikimedia sure has. The only thing that would make the png more valuable would be some accompanying discussion: I'd like to know who was/were mostly responsible for the design. Seems like I had searched through WP itself one time but found surprisingly little. what refactoring lessons they encountered during the history of the project. Much good karma to someone who can get proper credit to the database team!
- ig1 18y agoI'm not sure, but at a guess it would probably be either Lee Daniel Crocker or Brion Vibber.
- vulpes 18y agoI think this guy had a lot to do with it: http://dammit.lt/domas-mituzas/ http://dammit.lt/domas-mituzas/ A lot of interesting info can be found here: http://dammit.lt/uc/workbook2007.pdf http://dammit.lt/uc/workbook2007.pdf
- CalmQuiet 18y agoVulpes, thanks: that .pdf of a 2007 presentation by Domas Mituzas at MySQL Users Conference just about has it all: Cache strategies; performance specifics; application components; DB balancing; storage strategies; use of compression; load balancing; administration; the People involved. Certainly gives any LAMP-based development team a list of resources that have come together to be useful for such a project.
- dhoe 18y agoMe too. I installed SAP the other day - it doesn't even install if you don't have 20 GB free disk space, and it creates something in the order of several ten thousand tables. There ought to be job titles like "Corporate Simplificator".
- light3 18y agoIts crazy, you would think this is horribly inefficient. I worked a bit with Oracle Siebel, its a customer relations management software and the company decided to use it for its system. The database is just this giant juggernaut with thousands of tables generated automatically, if you look closely there is redundancy everywhere, which I assume is for performance enhancement, but even then it is horribly slow. Its absolutely drives you nuts because everything, from business information, to server configuration, and even even the interface - menu items, buttons, page layout, links, is stored in the database. Now this may make the software less 'bug free' and thus make less trouble for Oracle, but it is an absolute nightmare for the developer because everything has to be changed through the IDE, which is basically a retarded version of a database browser without the ability to run SQL update command, and only allows you to change one row at a time, you might as well as be a monkey. Working with the database directly is apparently against the rules of Oracle and will revoke the support from Oracle. Good thing I stopped working there @_@
- aneesh 18y ago> "Its absolutely drives you nuts because everything, from business information, to server configuration, and even even the interface - menu items, buttons, page layout, links, is stored in the database." There's a good reason for this. At any big company, it's much easier to change a value in a database table than it is to make a code change.
- binarycheese 18y agoConfiguration items are not hard coded ... they are stored in configuration files (e.g. app.config, settings.ini, app.xml etc.)
- 18y ago
- gamache 18y agoIt's amazing what happens when good designers think about their data structures, rather than write first and refactor later (or don't).
- jrockway 18y agoI doubt MediaWiki 0.001 beta had this exact database schema. MediaWiki is an open source project that has had thousands of man-hours poured into it.
- gamache 18y agoI realize that this isn't the same schema that launched MediaWiki. Its retained focus and ability to sustain growth without sprawl tells me that the schema was well thought out.
- huherto 18y agoYes it is nice to have a well designed database. However, it is part of the nature of business to be full contradictions and exceptions. That is reflected in their data models and applications.
- azanar 18y ago> However, it is part of the nature of business to be full contradictions and exceptions. I agree with you on this point, and so I voted you up. I disagree with the implication, though. There are two possibilities that come to mind when people encounter contradictions and exceptions in a system: 1. There is no unifying model. The exceptions are truly exceptional, and have to be dealt with as their own case apart from the main logic and rules of the system. 2. The existence of a unifying model is unknown, because no one has thought to look for it yet. Additional cases that need to be resolved are assumed to be exceptions unless it is blatantly obvious they are not, and are immediately developed as such. Experiences I and others have had suggest that the latter case is far more likely. So I agree that the nature of business as practices is full of exceptions and contradictions, but I disagree that being so is inevitable.
- jwilliams 18y agoIt's quite neat.. Although, they are really only tracking three key entities - Users, Pages and Media. You'd hope it would be pretty simple.