Jdbc表设计更好

时间:2016-02-29 19:43:14

标签: database jdbc

您好我正在创建一个仅包含3个数据输入的通知系统 1.电子邮件 - 应向其发送通知 2.通知消息 - varchar 3.状态 - 是否发送(y或N)

- 请注意,最终目标是将所有通知发送到电子邮件并通过批处理作业将其作为一封电子邮件发送

帮助我选择哪种设计更好

设计-1 创建表通知( notification_id整数auto_increment主键, message varchar(100)not null );

创建表电子邮件( email_id integer not null auto_increment主键, email varchar(40)not null );

创建表Email_notifications( email_id整数不为null, notification_id整数, status varchar(5)not null,

外键(email_id)引用电子邮件(email_id), 外键(notification_id)引用通知(notification_id), 主键(email_id,notification_id) );

设计-2:

创建表格技术( id integer不为null auto_increment主键, email varchar(40)not null, message varchar(100)not null, status varchar(5)not null默认'N' );

由于我将在其中使用JDBC,因此在api创建的简易性方面让我知道。

2 个答案:

答案 0 :(得分:1)

您应该使用设计1 更好地实施 您也可以使用 Design-2 ,但如果您必须向具有不同电子邮件和通知的多个人发送状态,则只能使用 Design-1
让我们假设一个条件:
如果您必须发送ID为2的电子邮件和ID为4的通知,那么在这种情况下,您需要两个不同的电子邮件和通知表。你在 Design-1 中做了什么
让我们假设另一个条件:
如果您必须发送具有相同ID的唯一电子邮件和通知,请使用 Design-2

答案 1 :(得分:0)

设计1是未来的证明。 假设:

,设计2在规范化规则方面仍然是正确的
  • 您不会在电子邮件中添加“姓名”,“声誉”等后来的内容。在那一刻,设计1的使用是强制性的。
  • 与整数键相比,“email”的相对较大的键不是空格/性能问题。

用于连接的驱动程序(JDBC,DAO,ODBC,OLEDB或本机)与数据结构无关。