Sobes.tech
Middle

Concevez une solution pour une page web de réservation de livres dans une chaîne de librairies : sélection de la ville et du magasin, liste de livres avec filtrage, réservation par numéro de téléphone, notification par SMS. Décrivez les exigences fonctionnelles, construisez un diagramme ERD, écrivez une requête SQL et une réponse JSON.

sobes.tech IA

Réponse de l'IA

Функциональные требования:

  • Выбор города из списка доступных.
  • Выбор магазина в выбранном городе.
  • Отображение списка книг с возможностью фильтрации по жанру, автору, цене и наличию.
  • Возможность бронирования книги по номеру телефона.
  • Отправка SMS-уведомления с подтверждением бронирования.

ERD-диаграмма (основные сущности и связи):

  • City (id, name)
  • Store (id, city_id, name, address)
  • Book (id, title, author, genre, price)
  • Inventory (store_id, book_id, quantity)
  • Booking (id, store_id, book_id, phone_number, booking_date, status)

Связи:

  • City 1..* Store
  • Store .. Book через Inventory
  • Booking связана с Store и Book

Пример SQL-запроса:

-- Получить список книг в выбранном городе и магазине с фильтрацией по жанру
SELECT b.id, b.title, b.author, b.genre, b.price, i.quantity
FROM Book b
JOIN Inventory i ON b.id = i.book_id
JOIN Store s ON i.store_id = s.id
JOIN City c ON s.city_id = c.id
WHERE c.name = 'Москва'
  AND s.name = 'Центральный магазин'
  AND b.genre = 'Фантастика'
  AND i.quantity > 0;

Пример JSON-ответа:

{
  "city": "Москва",
  "store": "Центральный магазин",
  "books": [
    {
      "id": 101,
      "title": "Война и мир",
      "author": "Лев Толстой",
      "genre": "Классика",
      "price": 500,
      "available": true
    },
    {
      "id": 102,
      "title": "Мастер и Маргарита",
      "author": "Михаил Булгаков",
      "genre": "Фантастика",
      "price": 450,
      "available": true
    }
  ]
}