El problema que tratamos es el de cómo registrar el horario de clases de un centro educativo, el de una empresa, etc. La solución se propone aquí no es la única ni la mejor en todos los casos, pero sí puede serlo en algunos. Esta propuesta consta de 2 pasos:
  1. Definir tramos horarios.
    Se trata de lo que en un colegio vendría a ser coloquialmente "1ª hora", "2ª hora", "3ª hora"... Este concepto constituiría una entidad, y en su tabla se registrarían los tramos horarios que existen.
  2. Asignar tramos horarios.
    Suponiendo que haya una entidad "Asignaturas", esta entidad se relacionaría con TramosHorarios, y la cardinalidad fácilmente sería N:M, por lo que habría una tabla intermedia en la que se emparejarían los tramos horarios con las asignaturas o actividades.

Una cuestión final...
Tras estos 2 pasos, sólo falta un detalle: Si, por ejemplo, asigno la 3ª hora a la asignatura "Matemáticas del curso ESO3a", en esta asignación falta un dato: ¿a qué día de la semana me refiero? Sea el martes, por ejemplo. La cuestión es: ¿Dónde indico que me refiero al martes, a la 3ª hora del martes?

Ejemplo: Turnos en una Farmacia 12H


Puedes acceder a las tablas de la BBDD Farmacia 12H en
https://docs.google.com/spreadsheets/d/1P3y6Xh3wTnret5w-dyHqFxFiLHrZCiDkz7_NAUio8f4/pubhtml