数据库会影响类吗?

时间:2014-05-31 09:04:38

标签: database class design-patterns dao

我创建了一个类User和UserDAOImpl类,用于使用类User查询数据库。由于有一个表需要查询,这两个类对我来说已经足够了。

enter image description here 如果要将新字段添加到该表中的情况将被分成3个表(user_info,user_profile和user_address)以存储用户,该怎么办?

随着新字段的添加,我需要更改User和UserDAOImpl类,看来这两个还不够。似乎数据库更改会影响我的类。

在这种情况下,我是否需要将类User划分为3个类,因为表是更改? 任何人都可以建议我如何在不做太多改变的情况下解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您的表格拆分与user_info - user_profileuser_address _ user_profile一对一(假设user_profile是主表),您可以简单地处理DAO类中的更改。 如果您将使用外键绑定表主键(关系一对一)吐出该表。那么你只需要在你的dao中调整你的查询

SELECT * FROM users WHERE id=1

SELECT * FROM users_profile up
   JOIN user_info ui ON up.id=ui.id
   JOIN user_address ua ON up.id=ua.id
WHERE up.id=1

(当然不是明星,你应该指出所需的字段,并且可能在DAO类中使用别名来更方便地访问它们)

然后相应地将值放到一个类中。

但是我会考虑更改您的类模型以适合您的数据库。特别是,user_address中的行可以由多个用户指向。在这种情况下,我将创建类Address并在User类中使用它。这样,您的程序就更容易理解,也更容易开发。