I have the following table, which represents the cards given to players during football matches:
CREATE TABLE cards (
player_id INT,
match_id INT,
color VARCHAR(4),
minute INT,
FOREIGN KEY (player_id) REFERENCES players(id),
FOREIGN KEY (match_id) REFERENCES matches(id)
);
As you can see, there is no primary key in it. It is possible for a player to receive two cards of the same color, at the same minute, in the same match. I think that is ok, since there is no need to know with more precision in which second a card is given.
Is this bad design? Does this have a name? Is this in any kind of normal form?