Альтернативные варианты среднего звена
Среднее звено должно динамически генерировать страницы WML на основе данных, получаемых из базы данных сервера. Например, чтобы показать названия книг, которые есть на сайте, среднее звено получает список книг из базы данных сервера и генерирует страницу WML со списком книг.
При реализации среднего звена возможны следующие альтернативы:
♦ Программы Common Gateway Interface (CGI), написанные наРег1/С. Эти программы могут обращаться к базе данных сервера с помощью API языка базы данных.
♦ Сервлеты, написанные на Java. могут обращаться к базе данных сервера через API SQL Java и драйвер JDBC базы данных. Драйверы JDBC существуют практически для всех баз данных.
♦ Языки сценариев, выполняемых сервером, такие как PHP, JavaServer Pages (JSP) и Active Server Pages (ASP). Эти языки поддерживают API для доступа к большинству реляционных баз
Выбор РНР для реализации среднего звена обусловливают следующие причины:
♦ РНР доступен на многих платформах (Linux, UNIX и Windows NT) и для различных веб-серверов (Apache и IIS). Поэтому есть выбор платформ и веб-серверов для размещения среднего звена.
♦ Производительность является неотъемлемым требованием к любому приложению для Интенета, поэтому языки сценариев предпочтительнее, чем сервлеты или программы CGI.
♦ РНР предоставляет программные интерфейсы для доступа к многочисленным базам данных, поддерживая такие возможности, как постоянные соединения с базами данных и сеансы. Эти функции интенсивно используются средним звеном.
Разработка схемы базы данных
В этом разделе мы разработаем схему базы данных для нашего приложения. Данные приложения (таблицы и индексы) будут храниться в отдельной базе данных (shop). Все объекты схемы, относящиеся к приложению, следует хранить в отдельном пространстве базы данных/таблиц. Это облегчает управление родственными объектами базы данных. Например, для создания резервной копии данных приложения корзины покупок администратору надо сделать копию только одной базы данных (shop).
Таблицы базы данных
В базе данных shop будут созданы следующие таблицы:
• UserProfile
• BookShop
• MusicShop
• Transaction
• Session
Таблица UserProfile содержит информацию о пользователе (табл. 16.1):
Пользователь базы данных
Один пользователь базы данных, РНР, создается для приложения корзины покупок. Все сценарии РНР среднего звена соединяются с серверной базой данных как пользователь РНР. У этого пользователя есть все права доступа к таблицам приложения корзины покупок.