Como posso resolver uma associação polimórfica de três vias?

Primeiro, deixe-me dizer que estou usando o MySQL (não transacional) e que isso não pode ser alterado. Além disso, simplifiquei as tabelas aqui para brevidade e clareza.

Neste exemplo, uma "Lição" é composta por seus atributos internos e seus atributos externos com seus próprios atributos "Leituras". 'Readings' tem seus próprios atributos dependentes de chave e três atributos externos distintos (as fontes de leitura).

Eu quero evitar a associação polimórfica que surge aqui, mas não consigo envolver minha cabeça em torno dela. Neste exemplo, 'sourceId' na tabela 'Reading' conteria o id de uma das três tabelas "ExternalURL", "InternalURL" e "Book". Além disso, o campo "polytable" conteria o nome da tabela da qual o "id" mencionado veio.

Alguém pode ter um momento para explicar como resolver esta manutenção RI ou é possível que no interesse da eficiência que deve ser deixado?

Obrigado pelo seu tempo e consideração

Tim

                       -------------
                      | ExternalURL |
                       -------------
                      | id          |
                      | badlink     |
                      | url         |
                      |             |
                      |             |
                       -------------
                            |
                            |
                            |
                           / \
 ------------          -------------          -------------
| Lesson     |-------<| Reading     |>-------| InternalURL |
 ------------          -------------          -------------
| id         |        | id          |        | id          |
| label      |        | lessonId    |        | url         |
| summary    |        | sourceId    |        |             |
| lessonOrder|        | polytable   |        |             |
| active     |        | label       |        |             |
 ------------          -------------          -------------
                            \ /
                             |
                             |
                       ------------  
                      | Book       |
                       ------------ 
                      | id         |
                      | label      |
                      | summary    |
                      | lessonOrder|
                      | active     |
                       ------------ 

questionAnswers(1)

yourAnswerToTheQuestion