Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: На что нужно обратить внимание, разрабатывая расширяемый сайт?
 
 автор: Vecheslav   (17.12.2012 в 03:07)   письмо автору
 
 

Ночи доброй, дорогие.

Я разрабатываю несколько лет один проект, который так ещё и не запустил в сети. 4 января будет уж как года три, как я его пишу. Сейчас стал вопрос крупный. Что мне нужно сразу создавать в коде проекта, чтобы в будущем его возможно было легко изменить, для работы, например, на нескольких серверах? Ну, вот допустим, вначале там будет таблица, в которой хранятся сообщения, отправляемые между пользователями. Но если проект, вдруг, станет крупным, и там начнёт отправляться очень-очень много таких сообщений, таблицы будет не хватать. Нужно будет содержать несколько таблиц, а код-то настроен, чтобы всё из одной выводить.. Вот, так и с файлами, например. Вначале будут картинки 70%-го качества от исходников и разрешением максимум 800x600px, а вот потом дай возможость под 100% и 1920x1080px — так и места начнёт не хватать на одном хостинге, а потом и выделенном сервере, а потом и на личном сервере. И нужно будет все загружаемые изображения как-то по серверам разгружать, а код-то, опять же, не настроен на это. Что нужно мне уже сейчас, заранее сделать, чтобы в будущем такие проблемы можно было решить лёгким способом?

Например, сменить:
<?php
$images_servers 
[ ] = 'a';
?>
на
<?php
$images_servers 
[ ] = 'a';
$images_servers [ ] = 'b';
?>


Может быть нужно изначально уже сейчас сменить мои INT'ы для ID на какие-нибудь VARCHAR'ы для A115, B55, где первая буква будет означать таблицу, или сервер, или ещё что.

Что нужно уже сейчас, на этапе разработки?

Спасибо большое, кто отзовётся на мой сложный и вполне размытый вопрос.

P. S. Да простите меня за мои "яблоки". Пытался объяснить, чтобы 2+2 легче сложить было.

  Ответить  
 
 автор: cheops   (17.12.2012 в 07:18)   письмо автору
 
   для: Vecheslav   (17.12.2012 в 03:07)
 

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

  Ответить  
 
 автор: Vecheslav   (17.12.2012 в 13:33)   письмо автору
 
   для: cheops   (17.12.2012 в 07:18)
 

Первое уже реализовано, для других целей, но и для таких, конечно же, тоже подойдёт.

Про репликацию понял — записываем и обновляем на одном сервере, читаем на любых остальных.

Вот всё равно остался вопрос.

Допустим адрес к фотографии на сайте domain.com/photo700, то есть я буду искать в MySQL в таблице photos фотографию с id=700. Если фотографий будет много, возможно я начную их размещать в таблицах photos_0, photos_1, photos_2, photos_3, photos_4, photos_5, .., photos_N, тогда либо мне нужно следить, чтобы AUTO_INCREMENT в каждой новой таблице начинался с нужного значения, либо чтобы ID были не цифровыми, а, например, domain.com/photo0_700, и тогда я буду искать в таблице photos_0 фотографию с id=0_700 (или для domain.com/photo1_1 соответственно в таблице photos_1 искать id=1_1).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования