Database VB.NET中利用数据库数据的设计方法

Database VB.NET中利用数据库数据的设计方法,database,vb.net,oop,Database,Vb.net,Oop,我的问题一开始是关于根据变量命名一个新对象的询问,但当我写下我的问题时,我意识到我的解决方案的方法可能不合适,所以我将询问一般的设计建议。请允许我举一个我想解决的问题类型的简单例子 问题: 有一个数据库保存着太阳系中每颗行星的信息。数据库有多个表 程序打算访问这些数据,以各种方式向用户显示这些数据。该程序不打算在其源处操纵数据,尽管可以对两个字段进行计算以确定某些显示特性 访问数据的最佳方法是什么 我最初的方法(阅读:gut feeling,no research)是从数据库中获取每一行相关的数

我的问题一开始是关于根据变量命名一个新对象的询问,但当我写下我的问题时,我意识到我的解决方案的方法可能不合适,所以我将询问一般的设计建议。请允许我举一个我想解决的问题类型的简单例子

问题:

有一个数据库保存着太阳系中每颗行星的信息。数据库有多个表

程序打算访问这些数据,以各种方式向用户显示这些数据。该程序不打算在其源处操纵数据,尽管可以对两个字段进行计算以确定某些显示特性

访问数据的最佳方法是什么

我最初的方法(阅读:gut feeling,no research)是从数据库中获取每一行相关的数据,并根据这些数据创建一个自定义类的对象。因此,你可能会得到:

Universe.Planet.Earth.mass = 1
Universe.Planet.Earth.radiusPolar = 1
Universe.Planet.Earth.radiusEquatorial = 1
Universe.Planet.Earth.aphelion = 1.106
Universe.Planet.Earth.perihelion = .983

Universe.Planet.Mars.mass = .107
Universe.Planet.Mars.radiusPolar = .531
Universe.Planet.Mars.radiusEquatorial = .533
Universe.Planet.Mars.aphelion = 1.666
Universe.Planet.Mars.perihelion = 1.381
然后使用这些对象执行程序需要执行的任何操作。我在尝试实现这一点时遇到了很多问题,因此我认为我的设计方法存在根本性的缺陷


有没有关于如何处理这个问题的建议?

我会进一步抽象它。创造一个宇宙,宇宙中就有星系,所以宇宙中应该有一组星系。每个星系都包含空间物体(行星、卫星等)。我最终会得到一个类似于你的课程,除了:

  • 对象名称将是类的属性
  • 对象将具有枚举类型(行星、月亮等)
  • 描述位置的东西(离星系中心的距离??)
我不是一个太空迷,所以我不知道你能把什么构建成一个适用于所有对象的基类,但我猜你会的

如果有计算,最好让SQL计算并使其成为返回记录集的一部分


你在计算什么?

我会进一步抽象它。创造一个宇宙,宇宙中就有星系,所以宇宙中应该有一组星系。每个星系都包含空间物体(行星、卫星等)。我最终会得到一个类似于你的课程,除了:

  • 对象名称将是类的属性
  • 对象将具有枚举类型(行星、月亮等)
  • 描述位置的东西(离星系中心的距离??)
我不是一个太空迷,所以我不知道你能把什么构建成一个适用于所有对象的基类,但我猜你会的

如果有计算,最好让SQL计算并使其成为返回记录集的一部分


你在计算什么?

@MichaelPetrotta是否有主题和正文格式的指导原则?Michael,在“提问”页面的右侧有一些指导原则,其中有指向更多细节的链接。还有很多指导,我不希望新用户完全阅读。@MichaelPetrotta有关于主题和正文格式的指导吗?Michael,在“提问”页面的右侧有一些指导,并带有指向更多细节的链接。还有很多指导,我不希望新用户完全阅读。我曾考虑过进一步的抽象,但为了在扩展到其他对象之前将其简化,以便将其固定下来。关于计算;例如,我可以使用一个常数(原点)和两颗行星的远日点/近日点来确定给定时间点这两个物体之间的距离。不过,这是次要的,要知道如何最好地处理定义的数据。考虑到我对需求的了解,我认为你的方法并不坏。您遇到了什么问题?我无法将数据从数据库移动到对象中。但是,在再次阅读您的文章之后,枚举对象类型可以让我在编程上决定如何分配它。这是一个巨大的挑战,“这个物体应该是行星还是卫星?”我将用它跑一段时间,看看我是否能取得更多的进展。谢谢你。我最终使用了收藏,这很好地解决了我的问题。我现在心情很好,这让我今晚取消约会的朋友们很懊恼我曾考虑过进一步的抽象,但为了在扩展到包含其他对象之前确定这一点,我对其进行了简化。关于计算;例如,我可以使用一个常数(原点)和两颗行星的远日点/近日点来确定给定时间点这两个物体之间的距离。不过,这是次要的,要知道如何最好地处理定义的数据。考虑到我对需求的了解,我认为你的方法并不坏。您遇到了什么问题?我无法将数据从数据库移动到对象中。但是,在再次阅读您的文章之后,枚举对象类型可以让我在编程上决定如何分配它。这是一个巨大的挑战,“这个物体应该是行星还是卫星?”我将用它跑一段时间,看看我是否能取得更多的进展。谢谢你。我最终使用了收藏,这很好地解决了我的问题。我现在心情很好,这让我今晚取消约会的朋友们很懊恼