首先让我说我使用的是
MySQL(不是事务性的),并且无法更改.此外,为简洁明了,我在这里简化了表格.
在这个例子中,’Lesson’由它的内部属性和一个外部属性组成,它有自己的属性’Readings’. ‘Readings’拥有自己的密钥依赖属性和三个不同的外部属性(阅读源).
我想避免在这里产生的多态关联,但我无法绕过它.在此示例中,’Reading’表中的’sourceId’将包含三个表“ExternalURL”,“InternalURL”和“Book”之一的id.此外,字段“polytable”将包含上述“id”来自的表名.
有人可以花一点时间来解释如何解决这种维护RI的问题,还是为了效率而应该留下它?
感谢您的时间和考虑,
蒂姆
-------------
| ExternalURL |
-------------
| id |
| badlink |
| url |
| |
| |
-------------
|
|
|
/ \
------------ ------------- -------------
| Lesson |--------------| InternalURL |
------------ ------------- -------------
| id | | id | | id |
| label | | lessonId | | url |
| summary | | sourceId | | |
| lessonOrder| | polytable | | |
| active | | label | | |
------------ ------------- -------------
\ /
|
|
------------
| Book |
------------
| id |
| label |
| summary |
| lessonOrder|
| active |
------------