[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как спроектировать базу mysql
vladex
Здравствуйте!
Подскажите мне ответ на такой вопрос:
У меня есть задумка создать порфолио, оно имеет такую структуру >>>>> user posted image
скачать оригинал.
Как видите вложенность 4-уровня.
Как мне лучше и правильно спроектировать базу данных mysql для такой структуры.
Я хочу сделать так:
основная база:
portfolio
|
categor
|
settings
/ \
design 3dgrafics


Вот таким образом.
Сейчас пишу словами:
Создана база данных portfolio с таблицами settings categor design 3dgrafics.
Таблица settings - включает тексты страниц на который перейдем с главной страницы index.php
Таблица categor - включает данные по категориям в пункте портфоло, то есть в ней информация о дизайне, 3 д и т.д.
Таблицы design 3dgrafics основные, в них информация о работах.
Правильно ли я делаю или нет?
Или же надо всю инфу в одну таблицы загонять?
И как сделать чтобы один код php выводл каждую страницу по нажатию на работу, чтобы не делать отдельный файл, например design.php и т.д.
То есть генерировался динамически.
Заранее спасибо!



Спустя 1 час, 38 минут, 5 секунд (25.12.2008 - 07:36) kirik написал(а):
Есть раздел - портфолио (portfolio.php), с ним, с одним файлом и работаем, вызывая с нужными параметрами.
portfolio.php?page=3dgraphics - выведет страницу, на которой содержатся все работы связанные с 3дэхой, portfolio.php?page=3dgraphics&id=2 - выведет работу с id = 2 из категории 3дграфики
Если предпологается что контент страниц будет включать в себя HTML разметку для каждой страницы, то таблица одна примерно такая { id | category | content } id - уникальный номер работы, category - категория, в которой расположена работа (3dgraphics, design..) и по которой будут выводится все работы данной категории (portfolio.php?page=3dgraphics), content собственно контент страницы с работой (portfolio.php?page=3dgraphics&id=2)

Это описание, по-хорошему нужно добавить поля title - тайтл страницы который будет показываться как на самой странице, так и при выведении списка работ, short_description - будет показываться короткое описание работы при выводе списка, date_of_creation - дата создания работы..

А вообще все зависит от самой структуры сайта, от типа страниц (то-ли это просто галерея, то-ли просто текст, то-ли это страница со своей разметкой), и от многих других fuckторов.

Спустя 2 дня, 12 часов, 25 секунд (27.12.2008 - 19:37) vladex написал(а):
Вот еще примерная структура сайта ->>>>

user posted image


Логика работы следующая-
Нажимаем на ссылку ПОРТФОЛИО на первом рисунке - ссылка такая

/portfolio.php

Загружается страница которую представляет рисунок ВТОРОЙ.
Эта страница выводится с помощью цикла
PHP
function two_column($arr)
{
    
$m1 = array();
    
$m2 = array();
    foreach(
$arr as $key=>$val)
    {
        if (
$key%== 0)
            
$m1[] = $val;
        else
            
$m2[] = $val;
        
    }
    return array(
'm1'=>$m1'm2'=>$m2);
}
$result mysql_query ("SELECT * FROM portfolio ORDER BY id") or print mysql_error();
    
    if ((
mysql_num_rows($result))!=0)
    {
        
$ret_arr = array();
        while (
$row mysql_fetch_array($resultMYSQL_ASSOC))
        {
            
$ret_arr[] = $row;
        }
    }
$arr two_column($ret_arr);
$c sizeof($arr['m2']);
for (
$i=0$i<=$c$i++ ) 
{  
     if(isset(
$arr['m2'][$i]) && isset($arr['m1'][$i])){
         print 
"
          <table align='center' class='listing'> 
          <tr>
          <td class='list'> 
          <img class='img' alt='{$arr['m1'][$i]['alt']}' align='left' src='{$arr['m1'][$i]['mini_img']}'>   
          <a class='href_l' href='portfolio.php?page={$arr['m1'][$i]['id']}'>{$arr['m1'][$i]['title']}</a> 
          <p class='date'>Последнее обновление:{$arr['m1'][$i]['date']}</p> 
          <p class='date'>Автор:{$arr['m1'][$i]['author']}</p> 
          </td>
          <p>&nbsp;</p>
          <td class='list'> 
          <img class='img' alt='{$arr['m2'][$i]['alt']}' align='right' src='{$arr['m2'][$i]['mini_img']}'>   
          <a class='href_r' href='portfolio.php?page={$arr['m2'][$i]['id']}'>{$arr['m2'][$i]['title']}</a>  
          <p class='date'>Последнее обновление:{$arr['m2'][$i]['date']}</p> 
          <p class='date'>Автор:{$arr['m2'][$i]['author']}</p> 
          </td> 
          </tr></table>"
;
     }
}

В отображенной таблице напротив каждого типа работ ссылки уже с переменной page
Вид ссылок

portfolio.php?page=design

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

portfolio.php?page=design&id=1

Нажимаем на нее и наконец появляется крайняя страница которая на самом последнем рисунке.
Вот как мне сделать вывод 2,3 и 4 - го рисунка в одной странице, я имею ввиду код.
Я думаю необходимо применять логику if ... else, но я не могу сообразить как лучше сделать таблицы базы mysql
То ли делать общую таблицу на все работы, либо на каждую отдельную, но тогда как выводить их оператором SELECT.
Подайте плиз информационные "пинки". Только без слов "ЧИТАЙ маны, документацию" или "Такое уже писали тебе".
За прошлые ответы спасибо.

P.S. Когда писал вопрос, нашел косяк в этом форуме:)
Да вы его сами видите, при написании ссылки - portfolio.php?page=design&id=1 в конце видно знак закрывающегося тега > , но я вставляю код без него, так что видимо ошибка преобразования.[/php]

Спустя 1 день, 13 минут, 39 секунд (28.12.2008 - 19:50) vladex написал(а):
Неужели никто не сталкивался с вопросом проектирования базы и продумывания страниц и таблиц соответствующим им.
Помогите пожалуйста.
Ну не доходят мои мозги еще пока до того чтобы сопоставить вывод из базы с ее структурой.
Кто знает или делал подобное напишите, не поленитесь.
А то весь топик только и забит моими кодами да ответами "знатаков"-читай то, читай это, неужели не понятно. Если трудно написать подробно, то вообще не пишите. Я считаю что форум на то и форум чтобы там вопросы решать.
Это просто современная политика админов и модеров сделала так что форумы могут понимать только гуру или те кто уже 10 лет на этом форуме сидит.
Все это в какой то степени флуд, но возвращаясь к основному вопросу, прошу помощи:)

Спустя 51 минута, 39 секунд (28.12.2008 - 20:42) Sylex написал(а):
vladex, парень, ну нет времени читать все что ты описал, думать над этим, а потом еще расписывать хорошо чтобы ты понял, ну НЕТУ!!

Время - деньги, поверь! smile.gif

Спустя 6 минут, 39 секунд (28.12.2008 - 20:49) Alchemist написал(а):
Собсно, по-моему, kirik выше все описал... что непонятно ?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.