Проектируем БД для PostgreSQL 🚀
Продолжим историю с проектом G-Food по учету калорий, на котором разбирали методы REST API. Хочу затронуть тему проектирования БД и показать, как понимание БД помогает в создании JSON-объектов.
Базовые определения, важные для БД:
🔺 Сущность
Любой реальный или абстрактный объект этого мира, у которого есть набор характеристик.
Примеры:
- стол (имеет цвет, высоту, длину, ширину, материал, изготовителя),
- компьютер (имеет цвет, производителя, диагональ экрана, ОС и т.д.),
- продукт (имеет название, калории, белки, жиры, углеводы, описание, размеры порций - в контексте нашего проекта G-Food).
🔺 Свойство / Атрибут / Параметр / Поле
Характеристики сущности.
В примерах выше перечисляются в скобках: цвет, высота, длина, описание, и т.д. При проектировании систем всегда выделяются только те характеристики, которые реально будут использоваться в системе.
В примере выше у меня для сущности “Стол” ошибка, если я проектирую Интернет-магазин. Нет цены в характеристиках (свойствах сущности).
🔺 Объект
Сущность с конкретными характеристиками.
Примеры для сущности "Продукт":
- Овсяные хлопья, калории = 364, Б=12, Ж=6, У=61, Описание = Еда на завтрак, Размеры порций = [45 г, 60 г, 100 г],
- Овсяные хлопья, калории = 364, Б=12, Ж=6, У=61, Описание = Еда на завтрак - Геркулес традиционный, Размеры порций = [30 г, 60 г, 100 г],
- Банан, калории = 96, Б=1, Ж=0.5, У=21, Описание = Желтый фрукт, Размеры порций = [75 г, 150 г],
и т.д.
Объекты - это то, что мы можем увидеть, измерить, пощупать, познать. Воспринимайте это так. И помните, что объеты бывают не только физические. Например - сериал или файл в компьютере.
Разница между сущностью и объектом:
Сущность - обобщение группы объектов с одинаковым набором характеристик, которые будут храниться в будущей системе.
Объект - сущность с конкретными характеристиками.
Эти 3 определения важно знать, чтобы:
✔️ общаться с разработчиками,
✔️ определять потоки данных из бизнес-процессов, не теряя важные требования,
✔️ проектировать БД.
Post #1417
3K

- ❤ 22
- 🔥 8
- 👍 5
- 🥰 1