Мутим интернет-магазин Roman AKA Docent Спецвыпуск Xakep, номер #043, стр. 043-008-4 Если тебе нужно хранить в БД изображение товара, для этого следует добавить еще несколько полей к этой таблице. Первое - размер файла с изображением (INT), второе - имя файла (VARCHAR), третье - двоичные данные (это поле BLOB или LONGBLOB), четвертое - тип MIME (VARCHAR, если грузится картинка, то в него запишется image/jpeg), и последнее - время обновления (TIMESTAMP). По поводу хранения картинок непосредственно в базе данных до сих пор ведется много споров. Считается, что, якобы, обращение к файлам, хранящимся в БД, происходит намного медленней, чем если они просто хранятся на диске, а в базе указывается только ссылка на этот файл. Вопрос спорный, но мне удобней сохранять в базу - телодвижений меньше. Ты можешь вместо этого добавить лишь одно поле, в котором будут сохраняться ссылки на файлы, и хранить эти картинки на диске, если такой вариант тебе нравится больше. Еще одна таблица, в нее будем заносить данные о заказах. В ней необходимо предусмотреть следующие поля: первое - уникальный идентификатор, например число, присваиваемое автоматически; еще несколько полей для записи имени клиента, его контактной информации, адреса доставки, комментариев и любых других данных, которые ты считаешь нужным хранить. Поле для сохранения даты и времени заказа и, наконец, поле (или поля), содержащее данные о заказанных товарах. Это основные таблицы базы магазина. Может, понадобится хранить еще что-то, например, новости или статьи - некоторые хранят их в файлах на диске, не пользуясь базой данных. Клиентская часть Что должен увидеть пользователь, когда зайдет в магазин? Ну, разумеется, полный список категорий товаров с возможностью просмотра подкатегорий и товаров, а также их заказа. Иметь возможность искать по базе данных необходимые товары по любым словам. Он должен видеть корзину и ее состояние, иметь возможность добавлять в нее товары, редактировать и удалять в любой момент ее содержимое. Неплохо, когда на основной странице видно, сколько товаров уже в корзине и их общая стоимость. А также возможность прямо оттуда перейти в нее для указанных выше действий или сразу завершить процесс покупки. И, наконец, по окончании шоппинга, самое основное - форма для заполнения данных о доставке: имени, адреса, если надо, данных платежной карточки. Эти данные, вместе с информацией о заказанных товарах, должны занестись в определенную таблицу в базе данных и, для удобства и оперативности, отсылаться на почтовый адрес менеджера (как вариант: еще и sms-уведомление). По окончании шоппинга страница должна возвращаться в исходное состояние: титульная страница, пустая корзина и довольный покупатель :). |