How can I build a risk matrix in databse tables?
OK based on @Lennart's feedback, this is a pretty good design for a risk matrix in a database, to suit my needs as described in the question.  I've removed the Unique Key, which was duplicating the Primary Key.

CREATE TABLE IF NOT EXISTS `likelihoods` (
  `likelihoodid` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
  `shortname` varchar(50) NOT NULL,
  `longname` tinytext DEFAULT NULL,
  PRIMARY KEY (`likelihoodid`)


CREATE TABLE IF NOT EXISTS `consequences` (
  `consequenceid` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
  `shortname` varchar(50) NOT NULL,
  `longname` tinytext DEFAULT NULL,
  PRIMARY KEY (`consequenceid`)


CREATE TABLE IF NOT EXISTS `riskmatrix` (
  `likelihoodid` tinyint(3) unsigned NOT NULL,
  `consequenceid` tinyint(3) unsigned NOT NULL,
  `levelid` tinyint(3) unsigned NOT NULL,
  PRIMARY KEY (`likelihoodid`,`consequenceid`),
  KEY `FK_riskmatrix_consequences` (`consequenceid`),
  KEY `FK_riskmatrix_risklevels` (`levelid`),
  KEY `FK_riskmatrix_likelihoods` (`likelihoodid`),
  CONSTRAINT `FK_riskmatrix_consequences` FOREIGN KEY (`consequenceid`) REFERENCES `consequences` (`consequenceid`),
  CONSTRAINT `FK_riskmatrix_likelihoods` FOREIGN KEY (`likelihoodid`) REFERENCES `likelihoods` (`likelihoodid`),
  CONSTRAINT `FK_riskmatrix_risklevels` FOREIGN KEY (`levelid`) REFERENCES `risklevels` (`levelid`)