首先让我说我正在使用 MySQL(不是事务性的)并且这是无法更改的。此外,为了简洁明了,我在这里简化了表格。
在此示例中,“课程”由其内部属性和具有其自身属性“读数”的外部属性组成。“阅读”有它自己的关键依赖属性和三个不同的外部属性(阅读源)。
我想避免这里出现的多态关联,但我无法理解它。在此示例中,表“Reading”中的“sourceId”将包含来自“ExternalURL”、“InternalURL”和“Book”三个表之一的 id。此外,字段“polytable”将包含上述“id”来自的表名。
有人可以花点时间解释一下如何解决这个维护的 RI,还是为了提高效率而应该保留它?
感谢您的时间和考虑,
蒂姆
-------------
| 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 |
------------