Skip to content

Instantly share code, notes, and snippets.

@qcom
Last active December 15, 2015 15:59
Show Gist options
  • Save qcom/5286316 to your computer and use it in GitHub Desktop.
Save qcom/5286316 to your computer and use it in GitHub Desktop.
Specs
My project is the development of a sort of support ticket system. So when an employee has a problem that needs action from another department or employee, a ticket is issued to the appropriate target.
The following is a quick overview of the entities that I'm having trouble modeling.
1. Tickets
Tickets are issues that need to be resolved, such as "Remove product X from our storefronts because it has been discontinued by the vendor." Tickets are constructed from one of a certain number of predefined "types" (can be thought of as "templates"). So, our above ticket example would have been created from the "Remove discontinued product" type. Another type might be "Increase sales price of product X", and so on. Basically, these types amount to just a collection of fields that need to be filled out by the instances of the templates. Tickets are composed of one or more tasks, as explained below. The tasks generated for each ticket depends on the kind of ticket it derives from.
2. Tasks
These are specific actions that must be carried out in order to resolve a ticket. They are delegated to the appropriate user or department, depending on the ticket. So for the discontinued product example above, the accompanying tasks might be "Take down from Amazon.com (Assigned to Employee1)" and "Take down from website ______.com (Assigned to Employee2)".
I'm new to databases, and I can't tell whether or not I should go with a relational db or a NoSQL db. The database's performance is not the most critical factor, as the expected number of requests is tiny. Rather, I'm looking for a database that offers data models and a query language that is appropriate for my project.
I'd appreciate any advice on this matter, and I can always add more in regards to the project's specs for clarification.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment