2016-02-29 35 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或本机)与数据结构无关。