Я разрабатываю проект, состоящий из ReactJS в качестве внешнего интерфейса и Laravel в качестве конечной точки внутреннего интерфейса.
Мой проект в основном зависит от отображения данных c в соответствии с критериями, выбранными пользователем, и эти данные представляют собой одну книгу, разделенную на следующие разделы: -
- Разделено на страницы (500 страниц).
- Разделено на части (40 частей).
- Разделен на главы (25 частей).
- Строка на каждой странице c количество текстовых строк.
Позже пользователь может просмотреть книгу в соответствии с следующие критерии: -
- Specifi c страниц, показать страницы № 1, 2 и 3 из этой книги.
- Specifi c детали, покажите детали № 1,2 из этой книги.
- согласно выбранным главам.
Сейчас одно решение я могу сделать, хранит эти данные во многих json файлах и что json файлы хранятся с ReactJS файлами, скажем, внутри папки с именем (книга) и внутри этой папки с книгами следующие файлы json : -
1- bookDividedAccordingToPages. json, он будет содержать массив размером (500), который представляет собой общее количество страниц книги, разделенных на массив объектов, вот образец страниц json файл: -
[
{
"page": 1,
"page-content": [
{ "line_number": 1, "line_text": "This is sample line one text" },
{ "line_number": 2, "line_text": "This is sample line two text" },
{ "line_number": 3, "line_text": "This is sample line three text" }
]
},
{
"page": 2,
"page-content": [
{ "line_number": 1, "line_text": "This is sample line one text" },
{ "line_number": 2, "line_text": "This is sample line two text" },
{ "line_number": 3, "line_text": "This is sample line three text" }
]
}
]
2- bookDividedAccordingToParts. json, он будет содержать книгу, разделенную на 40 книжных частей массивов объектов: -
[
{
"part": 1,
"part-contents": [
{
"part_number": 1,
"part_text": "This is sample line one text",
"book_page_no": 1
},
{
"part_number": 2,
"part_text": "This is sample line two text",
"book_page_no": 1
},
{
"part_number": 3,
"part_text": "This is sample line three text",
"book_page_no": 1
}
]
},
{
"page": 2,
"page-content": [
{
"part_number": 1,
"part_text": "This is sample line one text",
"book_page_no": 1
},
{
"part_number": 2,
"part_text": "This is sample line two text",
"book_page_no": 1
},
{
"part_number": 3,
"part_text": "This is sample line three text",
"book_page_no": 2
}
]
}
]
Второе решение я могу сделать, это вместо включения файлов 3 json, размер которых, как я ожидаю, будет около (1 МБ) с файлом ReactJS и заставить каждого пользователя, заходящего на мой веб-сайт, загрузить файл prject. js и файл 1 МБ json, я сохраняю json файлов в бэкэнде и пусть laravel прочитает этот json файл, например: - Клиент из ReactJS выбрал следующий номер частей [6,7,8,9] для просмотра из этой книги, поэтому ReactJS отправит следующий запрос api: -
POST /api/getBook/ -> BODY: { "criteria": "parts", "selectedParts": [6, 7, 8, 9] }
А затем в laravel сначала он получит массив в файле «bookDividedAccordingToParts. json», а затем выберет индексы [6, 7, 8, 9], затем ответьте на запрос api с необходимыми данными.
Третье решение - сохранить всю книгу в структуре реляционной базы данных и предоставить пользователю необходимые данные. при получении запроса API.
Каков наилучший метод с точки зрения скорости и экономии ненужной нагрузки на сервер ресурсов?