Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопросы по организации структуры сайта.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): [1] 2 3 »   

> Без описания
lamer6666
Отправлено: 05 Ноября, 2011 - 19:58:11
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Доброго времени суток, уважаемые.
Планирую структура сайта. У нашей фирмы есть филиалы. Каждый филиал имеет свою базу товаров и не должен иметь доступ к базе другого филиала. Реализовать структуру MySQL базы решил так:
Каждому филиалу создать свою базу, а потом объединять данные из всех баз во ВЬЮШКУ (в единую таблицу).
Как технически реализовать данный механизм (хостинг на своем сервере)?
1. Написать свое приложение на C++, которое каждые 5-10 сек, обновляла ВЬЮШКУ.
2. Использовать тригеры (после обновления таблицы любого из филиалов обновлять ВЬЮШКУ)
3. Ваше мнение?

Не будет ли сильно нагрузки при такой структуре, учитывая что ВЬЮШКА будет иметь внушительный размер после объединения товаров. Будут ли подвисания учитывая что структура таблицы ISAM и соответственно при обновлении данных происходит блокировка всей таблицы?

Есть ли преимущества в организации структуры сайта вида http://site[dot]ru/gorod1/prod.php против http://site.ru/prod.php?city=gorod1? Для чего делают структуру сайтов вида (http://site[dot]ru/gorod1/ http://site[dot]ru/gorod2/ http://site.ru/gorod3/) ?
Всем огромное спасибо!
С уважением и наилучшими пожеланиями lamer.
 
 Top
Данил_123
Отправлено: 05 Ноября, 2011 - 20:12:12
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




lamer6666 пишет:
Есть ли преимущества в организации структуры сайта вида http://site[dot]ru/gorod1/prod.php против http://site.ru/prod.php?city=gorod1? Для чего делают структуру сайтов вида (http://site[dot]ru/gorod1/ http://site[dot]ru/gorod2/ http://site.ru/gorod3/) ?
Делают потому что им не жалко использовать дисковое пространство.. А на первый вопрос нет ответа.. так как http://site[dot]ru/gorod1/prod.php это путь на скрипт, а http://site[dot]ru/prod.php?city=gorod1 это использование GET функций которые можно настроить под вывод из базы


-----
http://mysitecost.ru
 
 Top
tuareg
Отправлено: 05 Ноября, 2011 - 20:31:17
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Почитайте про ВЬЮ, если у Вас действительно много товаров, лучше использовать ИнноДБ myISAM может быть критично.
Я бы использовал одну БД. Если филиалов очень много разбейте их таблицы, а так индекс по филиалу и все нормально.
Почитайте теорию. На счет нагрузки, сделайте БД, заполните товарами и погоняйте ее.
 
 Top
Мелкий Супермодератор
Отправлено: 05 Ноября, 2011 - 20:48:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Данил_123 пишет:
Делают потому что им не жалко использовать дисковое пространство..

А при чём тут дисковое пространство? Обычный ЧПУ.

Считается, что адреса http://site[dot]ru/gorod1/ приятнее пользователю, нагляднее поисковой машине и прочее.

tuareg пишет:
лучше использовать ИнноДБ myISAM может быть критично.

Всегда лучше использовать InnoDB, как единственный из поддерживаемых и одновременно работающий типов транзакционных хранилищ.

lamer6666 пишет:
Каждый филиал имеет свою базу товаров и не должен иметь доступ к базе другого филиала.

Описания так же не пересекаются? Вообще, между ними много общего?
Может будет удобнее не мучать таблицы, а раскидать 1 филиал = 1 БД.


-----
PostgreSQL DBA
 
 Top
caballero
Отправлено: 05 Ноября, 2011 - 22:38:11
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




а что значит обновлять вьюшку

если имеется ввиду view (представление) то его невозможно и бессмысленно
просто изза отсутсвия предмета обновления


если все филиалы на одном сервере там и база должна быть одна - тут и думать нечего - синхронизация нескольких БД - страшный сон любого админа

таблица филиалов - остальное в привязке к ней по ключу


то что вы называете структурой сайта - просто настроенные удобм образом URL

(Отредактировано автором: 05 Ноября, 2011 - 22:39:07)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
DeepVarvar Супермодератор
Отправлено: 05 Ноября, 2011 - 23:40:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Мелкий пишет:
А при чём тут дисковое пространство? Обычный ЧПУ.
В битриксе это обычные папки.
 
 Top
Данил_123
Отправлено: 05 Ноября, 2011 - 23:46:22
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




приятней пользоваться с помощью переключателей типа switch они и удобы и ссылки не длиные.. Например site.ru/?do=город1.. LIME разве ссылка вида site.ru/
gorod1/ это не обращение к папке gorod1 которая валяется в корне сайта?
(Добавление)
да и свичи при неверной ссылке не долго думают


-----
http://mysitecost.ru
 
 Top
LIME
Отправлено: 06 Ноября, 2011 - 06:00:50
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Данил_123 пишет:
LIME разве ссылка вида site.ru/
gorod1/ это не обращение к папке gorod1 которая валяется в корне сайта?
во первых че вы к LIME прикопались он не при делах ))
во вторых намякиваю : ЧПУ и mod_rewrite
(Добавление)
Данил_123 пишет:
да и свичи при неверной ссылке не долго думают
свичам ссылки фиолетово они по IP работают
 
 Top
Данил_123
Отправлено: 06 Ноября, 2011 - 10:17:28
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




ну у меня так настроен nginx.. И если нет такой строчики в свиче значит моментально вылетает 404.. А ну да лайм сорри почему то пока писал ваш ник всплыл.. Мелкий вопрос переодресовываю к вам


-----
http://mysitecost.ru
 
 Top
Мелкий Супермодератор
Отправлено: 06 Ноября, 2011 - 10:59:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Данил_123 пишет:
разве ссылка вида site.ru/
gorod1/ это не обращение к папке gorod1 которая валяется в корне сайта?

Это может быть всё, что угодно. Зависит только от настройки веб-сервера.

LIME пишет:
свичам ссылки фиолетово они по IP работают

Ну, кроме L3 свичей, свичи и об IP понятий не имеют. Работают по MACам.
Здесь, впрочем, речь о синтаксической конструкции switch. Адресную структуру на сетевых свичах делать - уникальной изощрённости разум!

DeepVarvar пишет:
В битриксе это обычные папки.

Битрикс это вообще отдельная история Ниндзя


-----
PostgreSQL DBA
 
 Top
lamer6666
Отправлено: 06 Ноября, 2011 - 15:45:45
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Мелкий пишет:
Описания так же не пересекаются? Вообще, между ними много общего?
Может будет удобнее не мучать таблицы, а раскидать 1 филиал = 1 БД.

Вот и я о том же:
1БД=Один филиал, пусть там творят что хотят со своими правами, а потом уже собирать все данные в одну общую базу, поэтому то и возник вопрос технической реализации.

Хотя как быть если есть общие "системные" таблицы, например методы оплаты, кладр, способы доставки т.п. получается что в их базы тянуть ссылки на "системные" таблицы из общей базы? Анализируя это понимаю что возможно тогда лучше каждому филиалу дать таблицу (создать ЮЗЕРА с доступом только на эту таблицу), связать все таблицы филиалов с "системными" таблицами, а потом выбирать данные из этих таблиц в одну общую, или так не стоит делать?
(Добавление)
caballero пишет:
если имеется ввиду view (представление) то его невозможно и бессмысленно
просто изза отсутсвия предмета обновления

Да вы правы, VIEW динамисческая таблица, я имел ввиду некую общую таблицу куда будет по таймеру сливаться таблицы товаров всех филиалов.
А как в случае 1БД=1Филиал использовать VIEW насколько это рационально?
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Ноября, 2011 - 15:56:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Мелкий пишет:
Битрикс это вообще отдельная история
http://www[dot]deepserver[dot]ru/sharedimages/bitrix[dot]jpg Ниндзя Ниндзя Ниндзя Радость Радость Радость
 
 Top
caballero
Отправлено: 06 Ноября, 2011 - 16:11:18
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
А как в случае 1БД=1Филиал использовать VIEW насколько это рационально?

view - это просто sql запрос
он только упрощает написание других запросов

еще раз
храните все в одной базе - не ищите проблем с синхронизацией или репликацией

хотите разделить права - это можно сделать на уровне базы или на уровне логики сайта

тем более что остальным базам действительно могут понадобится данные с общей - какие нибудь справочники или классификаторы

впрочем если базы на одном сервере БД крутятся то обращатся к таблицам другой БД не проблемма, просто по мере изменения количества филиалов придется корректировать код либо извращатся и динамически запросы собирать в UNION

(Отредактировано автором: 06 Ноября, 2011 - 16:23:26)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
lamer6666
Отправлено: 06 Ноября, 2011 - 16:33:54
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




caballero пишет:
храните все в одной базе - не ищите проблем с синхронизацией или репликацией


Как тогда выводит товары всех филиалов (то есть без дифференциации по филиалам), предварительно сливать все в общую таблицу, или в одном запросе все выбирать?
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Ноября, 2011 - 16:36:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Одна таблица на всех. Выборка по id филиала, чо тут не понятного?
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB