【发布时间】:2013-03-04 22:38:15
【问题描述】:
我已经开始设计一个数据库,因为我是它的初学者,所以我想问一下在我的案例中最好的设计方法是什么。
我有一个数据库,它应该存储有关 Web 应用程序用户的详细信息。但是,用户被分为两个(将来可能是三个)组,比如说“客户”和“工人”。两个组都有共同的信息(电子邮件、登录名、密码等)和一些组独有的信息。 在这种情况下,我想知道哪种解决方案更好:使用重复列(“LOGIN”、“PASSWORD”)创建单独的表“CUSTOMER”和“WORKER”,或者将公共信息标记到一个表“USER”中并存储“USER_ID”在“客户”和“工人”列中。
第二种情况,应该如何使用hibernate 3.x注解解决呢?因为它不是严格的 OneToOne 映射。
提前感谢您的帮助。
【问题讨论】:
-
一种方法是拥有三个表。一个用于所有用户,一个用于您的用户组,最后一个表包含用户和组 ID 之间的关系。 (将不同的用户放在不同的表中你可能会后悔)