originally posted in:BungieNetPlatform
View Entire Topic
I was playing around with the data in the manifest files (specifically the world one) and I wanted to import it all into a relational database, so I started creating tables equal to those in the SQLite database... but then I realised just how much data was there. So I've gone about generating a schema based on the data that's in there which can then be used for SQL stuff. It's not done yet, but this is the stage I'm at (yes, I'm blogging).
[url=http://pastebin.com/raw.php?i=DQLJwKNv]Here's an example[/url] based on an outdated manifest file. Install JSONView if it doesn't come out all pretty.
The idea is that when a new manifest file is released, you have some routine which drops all your existing tables, then based on the schema you generate new tables and insert the new data accordingly without needing to do it by hand. It does its best to condense anonymous objects with varying numbers of properties into a single object (ie. DestinyDirectorBookDefinition.transitionNodes) which would then be appropriate for just one database table, but it only really works so far if all those objects are owned under the same root object. That's why it fails for DestinyDirectorBookDefinition.notificationNodes and all the x, y, height, width properties in the Grimoire sections (for now...).
The SQL type determination is still a work in progress, but the idea is that it runs through the data and chooses/upgrades to the most appropriate SQL type (in this case MySQL). Object types translate to tables and array types become foreign keys.
Thoughts?
-
Sounds like a fun idea!