问题设计数据库

时间:2010-10-12 11:46:15

标签: database-design

我正在使用sql server 2008.我的场景如下。

有一个用户表,包含用户ID,密码,......其余字段

这是与保险有关的事情,案例如下

  1. 登录用户已投保(此处只有一人)
  2. 已登录的用户已投保,并且在同一用户下还有一名被保险人(此处有两人,其中一人已登录,另一人已投保,其为0多人关系)
  3. 登录用户未投保,同一用户下有一名被保险人。
  4. 这里我的问题是保存登录用户和被保险人的个人数据。我的意思是登录用户和被保险人有相同的数据字段。我的意思是

    如果登录用户和被保险人相同,则个人数据将相同。 (我不想在两个不同的表格中重复相同的数据)

    如果登录用户和被保险人不同,则两者的个人数据将不同。

    我如何设计数据库表

    请帮忙......

1 个答案:

答案 0 :(得分:1)

假设您有一个Policy表,持有不同的保险单,我会创建一个多对多表,使用各自的ID将User表链接到Policy表。

这样,您只需更新一次用户详细信息,并以任何方式将策略链接到用户。

对于你的场景:

  1. 使用策略登录用户 - 该表将包含具有策略ID的用户ID。
  2. 登录没有策略的用户,其他用户有策略 - 该表将保存其他用户ID和每个用户的策略ID。
  3. 使用策略登录用户,其他用户拥有策略 - 该表将包含所有这些用户ID和每个用户的策略ID。