Для хранения справятся log-файлы... Ровно как и MySql, mariadb или postgresql ... или KV ../ да как угодно хранить можно.
Вопрос: что после с этими сохраненными данными делать и как их обрабатывать. И в зависимости от хателок будет вырисовываться архитектура и можно выбирать подходящую под задачу базу.
Через связь многое-ко-многому, где в таблице связей кроме ключей есть поля с нужными характеристиками (например, число предметов в связке-наборе, или линк на таблицу с дополнительными характеристиками).