Продолжаем серию статей по созданию портала с запчастями. Сегодня мы с Вами спроектируем базу данных. Проектирование базы данных — это фундамент нашего с Вами проекта.
При проектировании Базы данных будем использовать 3 нормальную форму отношения в реляционных базах данных
В нашей базе будет 6 таблиц: User, Company, Product, Category, Attribute и Offer.
Таблицу User мы описывать не будем, так как она создаётся автоматом в Django.
Company
Так как мы планируем, что предложения по товарам будут выкладывать компании (юридические лица). Хранить данные о компании будем в таблице Company, состоящей из следующих столбцов:
- name — название компании, тип Char(2000).
- user — внешний ключ на таблицу User.
- inn — ИНН компании, чтобы инициализировать компанию(будет тип char(10), потому что ИНН может начинаться на 0), уникальное значение.
- address — адрес компании (длинный текст, тип — text, так как адрес может быть длинным).
- phone — телефон для связи, тип — char(12), уникальное значение.
- mail — электронная почта, тип — char(300), уникальное значение.
- logo — в django есть такой тип как ImageField, наследуется от FileField + содержит также height и width.
- Balance — баланс компании, в будущем планируется, что будут введены платные услуги, тип — int(11).
- Date — дата добавления компании в базу. Тип в django DateTimeField.
- Slug — это уникальная строка идентификатор, понятная человеку, будет использоваться autoslug.fields.AutoSlugField. Будет применяться для url. Уникальное значение.
- Active — Число, 0 или 1, которое укажет прошла модерацию фирма или нет.
Product
Таблица, содержащие данные о товарах.
- name — название продукта. Тип столбца Char(2000).
- number — каталожный номер, тип столбца Char(12), уникальное значение.
- slug — см. подобную строку в Company.
- image — так же как и logo в Company.
- Category — внешний ключ к таблице catregory, указывает к какой категории относится продукт.
Category
Таблица, содержащие данные о Категориях.
- name — название категории, char(2000).
- slug — см. подобную строку в Company.
- image — фото категории, тип как у logo в Company.
Attribute
Таблица для атрибутов товаров.
- key — ключ значения атрибута, тип — char(200).
- value — значение ключа атрибута, тип — char(200).
- product — внешний ключ на таблицу Product, чтобы привязать атрибут к Товару.
Offer
Таблица с предложениям по товарам.
- Product — внешний ключ на таблицу Product. По какому товару предложение.
- Company - внешний ключ на таблицу Company, Какая компания сделала предложение по товару.
- Price — цена предложения, тип Int(6).
- active — 0 или 1, указывает прошла ли модерацию предложение.
Данная структура может быть дополнена или изменена. Разработанная структура, на мой взгляд, является наиболее подходящей для этого проекта.
Схематично таблицы и связи выглядят вот так:
https://i.imgur.com/0GfpgN6.jpg
Данный пост подготовлен автором @zheev. В рамках данного цикла статей он расскажет о том, что и как он программировал, какие языки и технологии использовал. С какими трудностями пришлось столкнуться и их решение на реальных примерах.
Заглавное фото с сайта zametkinapolyah.ru
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
ianboil, vas, mishka, ukrainian, chiliec, mir, fetta, max-max, urii, galina1, dimarss, tristamoff, shuler, brovaryleaks, vadbars, maksina, arsar, vasilisapor2, renat242, semasping, gromozeka, tnam0rken, karusel1, exan, retoldname, acidgarry, vika-teplo, prost, sareon, mr-nikola, kertar, lokkie, bag, abloud, foxycat, alexmove, zir0chka, xsen, anr, kr-alexey, cryptovisitor
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас на странице https://golos.io/~witnesses, вот так: