JIRA is very nice software and popular for bug tracking, issue tracking and project management. It also has been used for support management system.
I have been working in issue import module and playing with some interesting things. JIRA has feature to add custom field in issues. When you are importing issues directly into JIRA database, you should be aware of this. Basically customfield, customfieldoption, customfieldvalue are main table which deal with custom field and value. So, whenever you import issue, you can simply save values in customfieldvalue table with reference to customfield table (customfield is foreign key) and jiraissue table (issue is foreign key). If field is type of select or cascade select, you have to take care additional constraint. For select, you have to save reference key in stringvalue field (of customfieldvalue table), which should be primary key in customfieldoption table. And, cascade select is same as select, but it requires parentkey which reference to parentoption in customfieldoption. ER diagram comes later.
You may like: Workflow in JIRA
JIRA in my ass which has to be configured with MS SQL, and there is custom developed module to import issue from MS Excel. JIRA already got custom workflow and imported issues have to be associated with existing workflow. It’s not easy as we think in JIRA. Diving into it for sometimes, I got pretty much idea actually how things works internally. It may be interesting to know how issues and workflow is connected.