У меня есть следующая таблица в моей БД:Создание пустых объектов в БД или сохранить их позже
CREATE TABLE document (
id INT PRIMARY KEY AUTOINCREMENT,
productModelId INT NOT NULL,
comment VARCHAR(50),
CONSTRAINT FK_product_model FOREIGN KEY (productModelId) REFERENCES product_model(id),
)
Конечно, реальная таблица является гораздо более сложным, но этого достаточно, чтобы понять проблему.
Наши пользователи хотят видеть номер документа при нажатии кнопки «новый». Итак, для этого нам нужно создать объект в db и отправить клиенту этот объект. Но есть проблема. Нам нужно знать productModelId, прежде чем мы сохраним объект в db. В противном случае у нас будет исключение sql.
Я вижу два возможных варианты (оба некрасиво, на самом деле):
Чтобы показать список модального с моделями продукта для пользователя и после этого создать объект в базе данных с productModelId выбранного пользователем.
Чтобы создать временный номер и после этого сохранить объект в db, когда пользователь завершит редактирование документа и сохранит идентификатор. Нам также нужно удалить NOT NULL case и проверить его в коде.
Первый способ - это плохо, потому что у нас слишком много модалов в нашем приложении. Наш пользовательский интерфейс слишком тяжел с ними.
Второй вариант является уродливым, потому что наша база данных не является согласованной без всех проверок.
Что вы можете предложить нам? Любые новые решения? Что вы делаете в своих приложениях? Возможно, некоторые подсказки пользовательского интерфейса. На данный момент мы используем первый вариант.