Как создать базу данных для двух классов Java, наследующих от абстрактного класса - PullRequest
0 голосов
/ 14 октября 2018

Меня спросили, как будет выглядеть база данных (в основном, сколько таблиц), если у нас есть абстрактный класс Animal и два класса Horse и Donkey, оба унаследованные от Animal.Мне нужно три стола или только два?какие у меня варианты?

1 Ответ

0 голосов
/ 14 октября 2018

Можно было бы сделать это очень просто:

Table: animal (id, name, etc.)

отл.

animal (1, horse, etc.)

Когда вам нужно несколько таблиц, это будет, когда у вас есть несколько атрибутов

Table: animal (id, name, movement_type, diet_type)

Table: movement_type (id, type)

Table: diet_type (id, type)

ex.

movement_type (1, Quadruped)
movement_type (2, Biped)

diet_type (1, Herbivore)
diet_type (2, Omnivore)

animal (1, Horse, 1, 1)
animal (2, Human, 2, 2)

Хорошо строить таблицы для повторяющихся данных.С этим типом структуры ваши данные остаются гораздо более точными.

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

ех.

Animal horse = new Equidae("Seabiscuit", "tranquil", "sport");
Animal donkey = new Equidae("Fred", "ambitious", "work");

Необходим другой класс, если два объекта будут иметь разное поведение.Осел и лошадь являются частью семейства Equidae, и их поведение одинаково.Свойства, из которых они состоят, разные, но поведение одинаковое.

С другой стороны, самое важное, что ваша программа работает, а база данных хранит данные.Это обычные практики, но «есть миллион способов убрать золотую рыбку».

Надеюсь, это поможет ответить на ваш вопрос.

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