У меня есть база данных, в которой есть две таблицы, одна из которых содержит внешний ключ к первой.Аналогично этому:
Table1
id
description
some
other
information
Table2
table1ID
Some
other
information
Для каждой таблицы1 может быть любое количество записей в таблице2.Мне нужно создать форму, которая позволит пользователям вставлять новые элементы в таблицы 1 и 2. Я сталкивался с этой проблемой в ряде проектов.Во-первых, это сохранение игровой статистики.Таблица 1 - таблица транспортных средств, а таблица 2 содержит информацию о каждом оружии транспортного средства.
Я могу придумать два способа справиться с этим.Один из них - показать всю информацию в одной форме и использовать Javascript, чтобы позволить пользователям добавлять новые подформы для каждого оружия по мере необходимости.Затем обработайте все сразу.Тем не менее, это немного некрасиво и, очевидно, опирается на JavaScript.Так что это неприемлемо для тех, у кого отключен JavaScript.
Другой способ, о котором я могу подумать, - это иметь несколько страниц.Первая страница позволит пользователям вводить общие данные, затем они могут нажать следующую для ввода данных об оружии.Каждый раз, когда они наносят следующий удар, они могут ввести новое оружие.Наконец, им будет показан полностью введенный автомобиль, и они смогут вернуться и отредактировать каждую его часть по своему усмотрению и, когда они будут готовы, отправить ее.
С одной стороны, этот способ требует намного больше обработки, чем первый.Это намного сложнее.Требуется, чтобы каждый шаг создания транспортного средства был добавлен в базу данных для временного хранения, пока пользователь работал над ним.Это должно быть отмечено как неполное.Мне пришлось бы создать какую-то задачу cron для очистки всех незавершенных автомобилей.
С другой стороны, он не использует JavaScript.
Существуют ли другие способы обработки подобных ситуаций?Если нет, какой из этих двух методов считается лучшей практикой?Есть ли способ удержать данные между страницами форм во втором методе, не добавляя их временно в базу данных?
Доступные мне инструменты - это база данных MySQL, PHP, javascript, html /CSS (очевидно) и операционная система Linux.