{"action":"created","issue":{"url":"https://api.github.com/repos/mijia/modelq/issues/16","labels_url":"https://api.github.com/repos/mijia/modelq/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/mijia/modelq/issues/16/comments","events_url":"https://api.github.com/repos/mijia/modelq/issues/16/events","html_url":"https://github.com/mijia/modelq/issues/16","id":122176865,"number":16,"title":"Joins","user":{"login":"joeblew99","id":11999859,"avatar_url":"https://avatars.githubusercontent.com/u/11999859?v=3","gravatar_id":"","url":"https://api.github.com/users/joeblew99","html_url":"https://github.com/joeblew99","followers_url":"https://api.github.com/users/joeblew99/followers","following_url":"https://api.github.com/users/joeblew99/following{/other_user}","gists_url":"https://api.github.com/users/joeblew99/gists{/gist_id}","starred_url":"https://api.github.com/users/joeblew99/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joeblew99/subscriptions","organizations_url":"https://api.github.com/users/joeblew99/orgs","repos_url":"https://api.github.com/users/joeblew99/repos","events_url":"https://api.github.com/users/joeblew99/events{/privacy}","received_events_url":"https://api.github.com/users/joeblew99/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mijia/modelq/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"mijia","id":42306,"avatar_url":"https://avatars.githubusercontent.com/u/42306?v=3","gravatar_id":"","url":"https://api.github.com/users/mijia","html_url":"https://github.com/mijia","followers_url":"https://api.github.com/users/mijia/followers","following_url":"https://api.github.com/users/mijia/following{/other_user}","gists_url":"https://api.github.com/users/mijia/gists{/gist_id}","starred_url":"https://api.github.com/users/mijia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mijia/subscriptions","organizations_url":"https://api.github.com/users/mijia/orgs","repos_url":"https://api.github.com/users/mijia/repos","events_url":"https://api.github.com/users/mijia/events{/privacy}","received_events_url":"https://api.github.com/users/mijia/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2015-12-15T02:16:29Z","updated_at":"2015-12-15T02:39:14Z","closed_at":null,"body":"It often is such that you can create struts in go that are a merge on one of more tables. These are sometimes called datasets, because they are a set of tables.\r\n\r\nThen to fill the dataset, you can call the crud for each table  manually doing the joins.\r\n\r\nI did this before in c# and it worked OK.\r\nI think we had a dB with almost 1,000 tables, and so this simple technique removed lots of boring coding.\r\n\r\nIt also properly separates for middler tier / client types from you database types.\r\n\r\nThe only real work is to write data transformation code that maps your database types to and from you datset types.\r\n\r\nFor many use cases of just managing simple things in the dB you don't need to use dataset types still. For example a user table. Then just the crud is fine.\r\n\r\nThe dataset types can be generated using protocol buffers or flat buffers. I prefer protocol buffers because it also generates the service calls also.\r\n\r\nThen you have code generated a hell of alot of the boring code.\r\n\r\nJust an idea !!"},"comment":{"url":"https://api.github.com/repos/mijia/modelq/issues/comments/164625695","html_url":"https://github.com/mijia/modelq/issues/16#issuecomment-164625695","issue_url":"https://api.github.com/repos/mijia/modelq/issues/16","id":164625695,"user":{"login":"mijia","id":42306,"avatar_url":"https://avatars.githubusercontent.com/u/42306?v=3","gravatar_id":"","url":"https://api.github.com/users/mijia","html_url":"https://github.com/mijia","followers_url":"https://api.github.com/users/mijia/followers","following_url":"https://api.github.com/users/mijia/following{/other_user}","gists_url":"https://api.github.com/users/mijia/gists{/gist_id}","starred_url":"https://api.github.com/users/mijia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mijia/subscriptions","organizations_url":"https://api.github.com/users/mijia/orgs","repos_url":"https://api.github.com/users/mijia/repos","events_url":"https://api.github.com/users/mijia/events{/privacy}","received_events_url":"https://api.github.com/users/mijia/received_events","type":"User","site_admin":false},"created_at":"2015-12-15T02:39:14Z","updated_at":"2015-12-15T02:39:14Z","body":"@joeblew99 Not using reflection is the main reason to have this code generator, :)"}}