Хранилище данных, используемое движком Google App, в отличие от механизма реляционной базы данных, не обеспечивает принудительного применения схем - вместо строк и столбцов в нем хранятся объекты с различными свойствами. Тем не менее, следует ли по-прежнему использовать традиционный дизайн базы данных?
Например, у меня есть приложение, отслеживающее различные арендованные автомобили. В традиционной базе данных у меня может быть таблица Автобусы
, в которой отслеживается длина и количество мест для каждого автобуса в парке, и Грузовики
, в которой есть столбец грузоподъемности и мощности для каждого грузовика. У каждого автобуса и грузовика также есть цвет и номерной знак. (Если я хочу нормализовать базу данных, я мог бы разбить эти атрибуты в таблице Vehicle
).
В хранилище данных Google мне хотелось бы просто хранить автобусы и грузовики как Vehicle
сущностей, поскольку они имеют общие свойства и добавляют любые свойства, специфичные для типа транспортного средства.
Каковы преимущества / недостатки использования традиционной модели базы данных, где каждый объект хранилища данных представляет собой таблицу базы данных?
Является ли более эффективным разбивать большие объекты на более мелкие объекты?
EDIT:
Также, какие-либо рекомендации относительно того, какой API использовать: JDO, JPA или низкоуровневый API Datastore?
Спасибо!