Я пытаюсь создать сортировку БД для корзины покупок, где пользователи могут проверять определенные предметы, и я смогу увидеть, какие предметы у каждого есть, и я также смогу увидеть, кто конкретно элемент проверен.
Я также хотел бы иметь изображение для каждого элемента. (Не уверен, насколько эффективно это?)Array association and DB design
В настоящее время у меня есть что-то вроде этого:
CREATE TABLE person(
id CHAR(9) NOT NULL PRIMARY KEY,
name VARCHAR(30) NOT NULL
);
CREATE TABLE items(
id CHAR(9) NOT NULL PRIMARY KEY,
itemName VARCHAR(30) NOT NULL,
category VARCHAR(30) NOT NULL,
subcategory VARCHAR(30) NOT NULL,
image LONGBLOB
);
CREATE TABLE person_items(
personID CHAR(9) NOT NULL,
itemID CHAR(9) NOT NULL,
FOREIGN KEY (personID) REFERENCES person(id),
FOREIGN KEY (itemID) REFERENCES items(id)
);
Является ли это эффективный способ в основном хранить массив элементов, которые человек допускается, чтобы проверить, или являются там лучшие способы?
Кроме того, хранится LONGBLOB
для изображения хорошая идея или есть лучший способ сделать это?
Вы также можете сохранить тип или даже имя файла в таблице вместе с блобом. Но хорошая причина не хранить изображения в базе данных, которую я узнал на протяжении многих лет, что ваша резервная копия базы данных становится очень большой, и это затрудняет создание резервных копий, а также установку тестовых сред. Сохраняя файлы отдельно, вы можете использовать хорошие инструменты базы данных для резервного копирования базы данных и хорошие инструменты резервного копирования файлов для резервного копирования файлов. – GolezTrol