2016-02-29 34 views
1

嗨我創建的通知系統只包含3個數據輸入 1.電子郵件 - 通知應發送到哪裏 2.通知消息 - varchar 3. status - sent或不(是或否)Jdbc桌面設計哪個更好

- 注的最終目標是俱樂部所有通知發送到電子郵件,並通過批處理作業把它作爲一個電子郵件

幫我選擇它的設計是更好

Design -1 create table通知( notification_id integer auto_increment主鍵, message varchar(100)not null );

創建表的電子郵件( EMAIL_ID整數不爲空的auto_increment主鍵, 電子郵件VARCHAR(40)不爲空 );

CREATE TABLE Email_notifications( EMAIL_ID整數不爲空, notification_id整數, 狀態VARCHAR(5)不爲空,

外鍵(EMAIL_ID)引用電子郵件(EMAIL_ID), 外鍵(notification_id)引用通知(notification_id), 主鍵(email_id,notification_id) );

設計-2:

創建表batchnotifications( ID整數不爲空的auto_increment主鍵, 電子郵件VARCHAR(40)不爲空, 消息VARCHAR(100)不爲空, 狀態VARCHAR(5 )非空默認'N' );

因爲我打算使用JDBC,所以讓我從這個角度瞭解API創建的簡易性。

+1

** Design-1 **更好,因爲它提供了更多的清晰度和靈活性。 –

回答

1

您應該使用設計1它更好地實施。
可以使用設計-2還,但如果你要發送狀態給多人使用不同的電子郵件和通知,則可以只用設計-1
讓我們假設一個條件:
如果你有發送ID爲2的電子郵件和ID爲4的通知,那麼在這種情況下,您需要兩個不同的電子郵件和通知表。你在做什麼Design-1

假設其他條件:
如果你有獨特的發送電子郵件,通知用相同的ID,然後使用設計-2

+0

你能解釋第二個場景嗎 – krrish0690

+0

在** Design-2 **中,你只能使用固定的電子郵件和固定的ID爲1的通知,比如:如果你想使用電子郵件ID 2和通知ID 4作爲第一個輸入,那麼你不能用** Design-2 **來實現這一點。在這裏你必須使用固定值進行特定輸入。 –

+0

如果你已經通過這個,然後把它投票,所以其他人會得到幫助 –

0

設計1是面向未來的。 設計2仍相對規範化規則正確,假設:

  • 你不會增加像「姓名」,「信譽」,等來的電子郵件後的內容。在那一刻,設計1的使用是強制性的。
  • 與整數鍵相比,「email」的相對較大的鍵不是空間/性能問題。

用於連接的驅動程序(JDBC,DAO,ODBC,OLEDB或本機)與數據結構無關。