Я делаю веб-приложение для компании, которая записывает данные в поле.
Они должны иметь возможность создавать свои собственные формы, которые затем технические специалисты будут заполнять на местах на рабочих местах. Каждый сайт вакансий отличается от следующего, поэтому компании необходимо создавать новые формы по своему желанию.
Данные могут быть текстовыми или числовыми, и они будут похожи на сетку - сравнивая различное оборудование, например:
Report #234 for Job Site 1
EquipmentA EquipmentB EquipmentC
Condition Fair Good Excellent
AZ425 Level 100 (ml) 84 (ml) 75 (ml)
Runtime 134 (hr) 400 (hr) 50 (hr)
Comment Supply XX is running low.
============================
Report #3 for Job Site 2
TankA TankB
G00 Level 40% 10%
Weight 500 (kg) 1000 (kg)
pH 8.12 1.35
Visual Ins Tank A has a crack near the bottom
Я планирую использовать CakePHP / MySQL
Какова будет лучшая схема MySQL для этой ситуации (или XML будет иметь больше смысла)?
Это то, с чем я работаю до сих пор:
Table 'Forms'
Cols: id, ref_number, job_site (fk), description, creation_date
Table 'Form_Controls'
Cols: id, form_id (fk), type (text, numeric, select), options (serialized data for dropdown list if a type 'select'), metric (hour, ml, kg, etc)
Table 'Form_Instance'
Cols: id, form_id (fk), technician (fk), creation_date
Table 'Form_Data'
Cols: id, control_id (fk), instance_id (fk), value, comparator (EquipmentA / EquipmentB, etc)
Является ли эта схема наиболее эффективной для этой ситуации?