在使用SQL数据库后端编写面向对象程序时,对象的属性是否与表中的行相对应?还是更多的关系?我不太明白对象的属性如何与表中的数据相关联。 谢谢您的帮助。
这主要取决于您使用的ORM,然而,总的来说其思路是:
class = > table
instance => row
attribute => column
ennuikiller提到了一些事情,但是一个对象可能被存储在多个行和表中,因为数据的建模和规范化可能没有相关性。
这并不是一件简单的事情... 需要一些阅读材料:对象关系阻抗不匹配(维基百科)
了解一下对象关系映射
一种编程技术,用于在关系型数据库和面向对象编程语言之间转换不兼容的类型系统。这实际上创建了一个可以从编程语言内部使用的“虚拟对象数据库”。有免费和商业版本的ORM工具可用,尽管一些程序员选择创建自己的ORM工具。
对于Java
或.NET
,Hibernate项目提供关系持久化。
Hibernate是一个功能强大、高性能的对象/关系持久化和查询服务。Hibernate让您可以按照面向对象的惯例开发持久化类——包括关联、继承、多态、组合和集合。Hibernate允许您使用其自己的便携式SQL扩展(HQL)以及本机SQL或面向对象的Criteria和Example API表达查询。
与许多其他持久化解决方案不同,Hibernate不会向您隐藏SQL的功能,保证您在关系技术和知识上的投资始终有效。
你需要更具体地说明问题,并可能在所选平台上进行一些研究。虽然有各种将不同面向对象语言映射到数据库的方法,但并没有“一刀切”的方法。