Table 1: `Horses`, including `horse_id` to uniquely identify the horse.
Table 2: `Markings` -- some fields:
horse_id -- not unique; for connecting (JOINing) to `Horses` (many:1)
leg -- 4 values: ENUM('right front', ...) (or whatever you like)
marking -- ENUM('sock', 'coronet', 'stocking', ...)
Example of listing all horses and their markings:
SELECT h.name, h.sire, m.leg, m.marking
FROM Horses h
JOIN Markings m ON h.horse_id = m.horse_id
ORDER BY h.name, m.leg;
There would be multiple lines when there are multiple markings. And (unfortumately) no lines for horses without any markings. (See LEFT JOIN as a possible way to avoid this issue.)
GROUP_CONCAT might be a way to have one line per horse and string out the markings on that line.