PHP Ticketing CMDB


Hi All

New to the forum and semi new to PHP, I’ve been tinkering for a few months now and have the basis of what I want which is a ticketing system for a repair service. What i would really like to do next is populate a mysql table with hardware serial numbers and warranty data then have these linked to my ticket. (for anyone familiar with ITSM’s think ServiceNow cmdb and incidents but with mutliple config items assigned to an incident.)

The difficult part is knowing what to google to find the terminology and progress from there.

as i see it… when creating a ticket there is a search box which can search multiple serial numbers pasted in, when the search is completed the serial numbers with warranty dates etc are displayed in a grid within the ticket. Click a serial number takes you to the record in the database. On submit the serials are then linked to the ticket, though a serial can have multiple tickets depending on how many times the unit has been through repair.

I hope this makes sense?

I’m not expecting anyone to be able to give me the complete answer wrapped up with a bow, but hopefully someone can lead me to the right terminology as i have tried various searches, php ticketing with linked records/items etc.

thanks Guys and Merry Christmas! :slight_smile:


Sounds like it comes down to database design. So, what have you thought about in regards to how the tables should look and what tables are currently needed?


Hi Astonecipher. Thank you for taking the time to reply! I hadn’t given it much thought, though now you ask has prompted me to maybe start thinking about it in more detail.

On first thought i think i need one table with serial number data, though i suppose it begs the question, should there be an auto id or just use the serial number as the id. Serial, warranty start, warranty end date and status.

Then maybe a serial to ticket table with serial/id and ticket reference.


personally, I’d use a unique id rather than the serial number. You never know, and that is more unique. Status’s should be it’s own table as well.