Ліміт полів у формі
Іноді під час створення власних полів ви могли зіткнутися з повідомленням про помилку, яке виглядає так:
Розмір рядка занадто великий. Максимальний розмір рядка для використовуваного типу таблиці, не враховуючи BLOB-об'єкти, становить 65535. Це включає накладні витрати на зберігання, перевірте посібник. Вам потрібно змінити деякі стовпці на TEXT або BLOB.
Що це означає?
Простими словами, це означає, що ви досягли ліміту максимальної кількості полів для конкретної форми/doctype. Отже, який максимальний ліміт полів?
У MySQL існує жорстке обмеження в 4096 стовпців на таблицю, але фактичний максимум може бути меншим для конкретної таблиці. Точний ліміт залежить від кількох взаємопов'язаних факторів.
Кожна таблиця (незалежно від механізму зберігання) має максимальний розмір рядка в 65 535 байт. Механізми зберігання можуть накладати додаткові обмеження на цей ліміт, зменшуючи фактичний максимальний розмір рядка.
Максимальний розмір рядка обмежує кількість (а можливо, і розмір) стовпців, оскільки загальна довжина всіх стовпців не може перевищувати цей розмір (65 535 байт). Наприклад, символи utf8mb3 вимагають до 3 байт на символ, тому для стовпця VARCHAR(140) сервер повинен виділити 140 × 3 = 420 байт на значення. Отже, таблиця не може містити більше ніж 65,535 / 420 = 156 таких стовпців.
У фреймворку Frappe стовпці типу VARCHAR(140) створюються на основі типів полів "Data", "Link", "Select", "Dynamic Link", "Password" та "Read Only". Отже, ви можете створити приблизно 156 таких стовпців у системі.
Рішення:
Щоб додати більше полів до системи, ви можете внести деякі зміни.
- Перетворіть деякі поля на тип "Text", "Small Text", "Text Editor" або "Code". У MySQL стовпці BLOB і TEXT займають від одного до чотирьох плюс вісім байт кожен у ліміті розміру рядка, оскільки їхній вміст зберігається окремо від решти рядка. Таким чином, перетворення на ці типи полів звільнить деякий простір і дозволить додати ще кілька полів.
- Встановіть менше значення у властивості "Length" під час створення полів, типовий значення - 140. Система встановлює довжину
VARCHARна основі цієї властивості та виділяє місце для цих стовпців. Отже, менша довжина дозволяє додати більше полів.