2012-12-25 44 views
1

我需要爲可以發送電子郵件的各種實體建模一個smtp服務器配置,所以我有一個表爲smtp服務器的設置。模型「有一個」的關係,其中多個表可以有一個東西

例如:發送電子郵件的實體是「房間」和「服務器」 - 它們生活在不同的表格中,因爲它們沒有共同之處,但它們都指向可選的電子郵件配置。

雖然在房間和服務器表中都有SmtpConfigId很簡單,但我看不到如何進行級聯刪除,如果刪除了房間或服務器,則其相應的smtp配置也會被刪除。

當然,我可以爲每個可以發送電子郵件的實體表複製smtp配置字段,我認爲如果電子郵件配置位於其自己的表中,發送郵件的業務邏輯將會被簡化。

除了發送電子郵件的實體之間的電子郵件配置(1:1)以及它們的smtp配置之外,還有形式字母問題,它是1:M,我還希望級聯刪除來清理如果創建它們的實體被刪除,則會形成字母。

我以正確的方式思考這個問題,以及建模它的好方法是什麼?在刪除觸發器?

回答

0

我會考慮建模作爲多態關係與一個表用於配置與smtp_type字段的東西來區分類型(房間,服務器等)。

+0

這基本上是我最終得到的:一個ownertype的枚舉和一個引用擁有表的PK的ownerid字段。然後,對於每個擁有的表格(房間,服務器等),我添加了「after delete」觸發器來清除引用的項目。 – user688026

相關問題