Диаграмма классов предметной области - gro1vy/DeliverServiceAPI GitHub Wiki
Данная диаграмма показывает все классы данных, которые представлены в базе данных
Нижняя часть диаграммы с классами House, Hierarchy и AddressElement требует небольшого пояснения. House и AddressElement хранят в Objectid глобальный идентификатор, именно по немо происходит переход от одного элемента к другому (от AddressElement либо к другому AddressElement, либо же к House, причем не может быть переход от House к AddressElement). Переход осуществляется с помощью Hierarchy, в Parentobjid указан элемент, из которого осуществляется переход, а в Objectid указано, куда можно совершить этот переход.
Также поясним связь между Dish, User и DishInCart. Dish и User имеют связь ManyToMany, которая реализована таблицей DishInCart, хранящая идентификаторы User и Dish, а также поле Count, означающее, сколько раз одно и то же блюдо было добавлено в корзину. Еще DishInCart хранит идентификатор заказа Order, в котором эта корзина была оформлена, если заказ на текущую корзину не был создан, то в этом атрибуте храниться Null, благодаря которому и происходит определение блюд которые находятся в текущей корзине, то есть если блюда не имеет ссылку на Order, то оно в текущей корзине.
Информации отдельно для каждой модели можно найти в вики в в разделе БД.