数据库与域模型之间的对象关系映射

时间:2011-03-28 08:39:34

标签: database orm

为了有效地将我的域模型中的实体映射到数据库表,我应遵循哪些规则?

数据库列是否应与域类属性对齐?

例如,我有一个 数据库表

Person {(varchar)FirstName, (varchar)LastName, int(age)}

域类

class Person(){

String firstName;
String lastName;
int age;
}
  • 应该是班级和表格 包含相同数量的属性
  • 它们应该是相同的 type(例如:varchar - string)
  • 最佳做法是什么
  • 应该避免什么?

1 个答案:

答案 0 :(得分:1)

对象关系映射有很多策略。最终,您必须在某个字段中表示每个持久数据,因此您的策略将起作用。您需要回答的其他问题:

1)您的记录是如何键入的?你是否会为每个班级都有一个唯一的ID字段?

2)你将如何处理继承?如果你有一个引入附加字段的PersonA(Person)类,你会为Person + PersonA中的每个字段创建一个全新的表,还是只为其他字段创建一个PersonA表?

3)您打算如何构建针对数据库的查询?你打算提供某种形式的对象查询映射吗?

有许多开源ORM,所以除非你为研究项目做这个,否则我建议你使用其中一个。