Проектный подход для использования данных из базы данных в VB.NET - PullRequest
1 голос
/ 06 ноября 2011

Мой вопрос начался с запроса о присвоении имени новому объекту на основе переменной, но когда я выписал свою проблему, я понял, что подход к моему решению может быть неуместным, поэтому вместо этого я попрошу общие рекомендации по проектированию. Позвольте мне привести простой пример типа проблемы, которую я хотел бы решить.

Проблема:

Существует база данных, в которой хранится информация о каждой планете Солнечной системы. База данных имеет несколько таблиц.

Программа намеревается получить доступ к этим данным, чтобы отобразить их пользователю различными способами. Программа не намеревается манипулировать данными в ее источнике, хотя для определения определенных характеристик дисплея могут выполняться вычисления в двух полях.

Каков оптимальный метод доступа к данным?

Мой первоначальный подход (читай: интуиция, никаких исследований) заключался в том, чтобы взять каждую связанную строку данных из базы данных и создать объект пользовательского класса на основе этих данных. Таким образом, вы можете получить:

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

Затем используйте эти объекты для выполнения любых действий, которые необходимы программе. Я столкнулся с множеством проблем, пытаясь реализовать это, так что я считаю, что мой подход к проектированию в корне ошибочен.

Какой-нибудь совет о том, как я мог бы подойти к этому?

1 Ответ

1 голос
/ 07 ноября 2011

Я бы абстрагировал это дальше. Создайте вселенную, и во вселенной есть галактики, поэтому во вселенной должна быть коллекция галактик. Каждая галактика будет содержать космические объекты (планеты, луны и т. Д.). Я бы закончил с классом, похожим на ваш, кроме:

  • имя объекта будет свойством класса
  • объект будет иметь перечисляемый тип (планета, луна и т. Д.)
  • что-то, описывающее местоположение (расстояние от центра галактики ???)

Я не космический наркоман, поэтому я не знаю, что вы могли бы встроить в базовый класс, который применим ко всем объектам, но я предполагаю, что вы это делаете.

Если есть расчеты, может быть лучше, чтобы SQL вычислил их и сделал его частью возвращенного набора записей.

Что вы рассчитываете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...