Тема: 1 база для всех или каждому отдельную?

Strawberry 1.1.1 + MySQL.

Столкнулся с таким вопросом.
Имеется сайт, подскажите как поступить в следующем случае.
На сайте будет около 40 человек которые будут каждый вести чтото вроде своего блога.
У каждого автора должен быть свой адрес
1 вариант - ivan.sayt.org
2 вариант - sayt.org/ivan
Понимаю что второй вариант вроде как лучше потому что позволит использовать всего одну базу и ivan как категорию, но тогда сложность в том чтоб каждая категория была с собственным дизайном странички. Первый вариант мне более удобен потому что в случае "падения" одной из баз остальные 39 страниц останутся работать но тогда вопрос в том как сделать на главной странице sayt.org вывод по несколько новостей из каждой базы?

Отредактировано pavel (18 Aug 2010 11:34:02)

Мученики только вредили истине.

Re: 1 база для всех или каждому отдельную?

Даю готовый код:

//Задаем нужные логины авторов
                                $my_cat = array('COLE','Sapfira', 'karmanyak');

                                //Определяем какие логины у нас есть в базе
                                foreach ($sql->select(array('table' => 'users')) as $row){ 

                                //Выбираем по порядку логины из базы, обрабатывая ТОЛЬКО НУЖНЫЕ
                                if (in_array($row['username'],$my_cat)) {

                                $static['user'] = $row['username'];

                                 //Выводим по одной последней новости из каждого автора
                                $static['sort'] = array('date', 'DESC');
                                $static['number'] = 1;
                                $static['template'] = 'шаблон для списка всех блогеров';
                                include rootpath.'/show_news.php';

Это для общего списка блогов.

Для каждого отдельного автора блогом является страница его новостей.
Т.е. придется подредактировать шаблоны. Если ЧПУ нет, то так:

<a href="index.php?user=<?=$tpl['post']['username']; ?>"><?=$tpl['post']['author']; ?></a>

Посмотрите темы:
- http://strawberry.goodgirl.ru/forum/topic/1990/
- Редактирование данных пользователя на главной странице
- http://strawberry.goodgirl.ru/forum/topic/3527/

Я еду на 2-3 дня на дачу так что Вам предстоит самому дальше разбираться...
Пример релизации: http://www.site.kharkov.ua/ (сайт в стадии разработки)

1 минуту и 33 секунды спустя:

Да, если у Вас есть ЧПУ, то Вы получаете

2 вариант - sayt.org/ivan

Ну или любой другой адрес, заданный в ЧПУ

4 минуты и 50 секунд спустя:

Кстати, предложенный мной вариант можно доработать, чтобы каждый пользователь мог сам выбрать дизайн (стиль) для своего блога. Для этого надо при подключении стилей проверять логин и смотреть какой стиль пользователь выбрал в личных настройках.

Можно создать дополнительное поле в таблице users, а можно изменить назначение одного из уже имеющихся.

Я это, возможно, потом реализую. Пока тестировал - вроде всё получается.

Отредактировано cmd (18 Aug 2010 12:16:28)

Re: 1 база для всех или каждому отдельную?

Предложенный Вами вариант не совсем мне подходит. Видимо я не совсем точно выразился.
Мне нужно чтоб не у залогиненного юзера был свой дизайн, а чтоб было скажем 40 блогов и у каждого своя страничка которую я настрою. Но на основной странице сайта чтоб можно было выводить новости со всех блогов.

Мученики только вредили истине.

Re: 1 база для всех или каждому отдельную?

Всё вы нормально спросили. И я, вроде бы, всё правильно понял.
Читайте внимательнее.

А дизайн для каждого пользователя выводить примерно так:

<? 
if ($row['username'] == 'логин_пользователя0') 
{ echo 'тут дизайн веб-страницы';}
elseif ($row['username'] == 'логин_пользователя1') 
{ echo 'тут дизайн веб-страницы';}
elseif ($row['username'] == 'логин_пользователя2') 
{ echo 'тут дизайн веб-страницы';}
else
{ echo 'тут дизайн вашего сайта';}
?>

А вот кто этот дизайн будет выбирать (вы или сам пользователь) - это дело третье.
Вообще, если у Вас РЕАЛЬНО 40 блогеров, то клепать каждому свой дизайн можно и заебаться.
Проще вариант который я предложил - предоставить каждому пользователю доступ к своему css или несколько шаблнов диайна на выбор. А это - см. пост №1.

Re: 1 база для всех или каждому отдельную?

Вообще, если у Вас РЕАЛЬНО 40 блогеров, то клепать каждому свой дизайн можно и заебаться.
Проще вариант который я предложил...

так вот это как раз не так тяжело как та проблема что сайт политический и эти 40 блогеров кандидаты и цсс им и нафиг не нужны...

А дизайн должен зависеть от категории если база будет одна.

Отредактировано pavel (26 Aug 2010 22:15:30)

Мученики только вредили истине.

Re: 1 база для всех или каждому отдельную?

pavel пишет:

Вообще, если у Вас РЕАЛЬНО 40 блогеров, то клепать каждому свой дизайн можно и заебаться.
Проще вариант который я предложил...

так вот это как раз не так тяжело как та проблема что сайт политический и эти 40 блогеров кандидаты и цсс им и нафиг не нужны...

А дизайн должен зависеть от категории если база будет одна.

Ага. Так и говорите прямо: у вас будет не 40 блогеров, а один администратор, который будет имитировать активность за 40 человек. Чувствуете разницу?

Сделайте скрытое дополнительное поле author. В шаблоне определяйте его как переменную $dddddd. А дальше как я и говорил раньше:

<? if ($dddddd == 1) { ?>
<html>
<head>
</head>
<body>
дизайн №1
</body>
</html>
<? } ?>

elseif ($dddddd == 2) { ?>
<html>
<head>
</head>
<body>
дизайн №2
</body>
</html>
<? } ?>

elseif ($dddddd == 3) { ?>
<html>
<head>
</head>
<body>
дизайн №3
</body>
</html>
<? } ?>

Хотя этот вариант отдает бредом... придется делать вывод новости с display: none; в самом верху страницы, чтобы переменную передать.
-------------------

Или можно создать 40 категорий и использовать конструкцию $_GET вместо доп. поля. Так, наверно, правильнее...
-----------------
Или можно создать 40 аккаунтов и заходить с ним по очереди (уж если имитировать присутствие живых людей, то давайте делать это правильно).

Отредактировано cmd (27 Aug 2010 16:22:07)