Аргерих Л. О языке РНР. Часть 4. Страница 10


Альтернативные варианты среднего звена

Среднее звено должно динамически генерировать страницы 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):

Пользователь базы данных

Один пользователь базы данных, РНР, создается для приложения корзины покупок. Все сценарии РНР среднего звена соединяются с серверной базой данных как пользователь РНР. У этого пользователя есть все права доступа к таблицам приложения корзины покупок.