JavaScript is required to use Bungie.net

Service Alert
All Destiny releases will be temporarily offline tomorrow for scheduled maintenance. Please stay tuned to @BungieHelp for updates.

#manifest

originally posted in:BungieNetPlatform
4/24/2015 6:27:34 PM
3

Manifest -> Schema -> SQL

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?
English
#manifest #SQL #json

Posting in language:

 

Play nice. Take a minute to review our Code of Conduct before submitting your post. Cancel Edit Create Fireteam Post

View Entire Topic
You are not allowed to view this content.
;
preload icon
preload icon
preload icon