VIRTUAL: Column values are not stored, but are evaluated when rows are read, immediately after any BEFORE triggers. A virtual column takes no storage. InnoDB supports secondary indexes on virtual columns.
STORED: Column values are evaluated and stored when rows are inserted or updated. A stored column does require storage space and can be indexed.
Dred Wolf, Правильно или нет - это зависит от цели. Если вы просто учитесь использовать MySQL, то поставить локально серверную часть и держать все базы в ней - это вполне нормальный вариант.
Если же вы разрабатываете коммерческое приложение, то тут надо исходить из конкретной задачи. Должен ли конечный пользователь устанавливать у себя сервер MySQL для работы с вашими приложениями? Или ему потребуется сетевое подключение к центральному серверу MySQL? Или достаточно будет интегрируемого в приложение SQLite?
IMHO, если форма в начале страницы, то будет неудобно просматривать товары, каждый раз надо будет пролистывать форму.
Если форма в конце страницы, то будет неудобно сразу её заполнять, она будет уезжать вниз при добавлении информации на страницу.