ФорумПрограммированиеPHP для идиотов → Mysql (проблемы с связью и огранизацией БД)

Mysql (проблемы с связью и огранизацией БД)

  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz 27 ноября 2008 г. 14:45

    Я новечек c mysql…задумал собрать нормальную БД, раньше собирал тока отдельные без связные таблицы.
    Вот изобразил на примере выбора таблицы авто

    Авто->avto-marcet->в таблицу в оттельным категория по авто-маркету->

    Как привязать таблицы:

    table1
    id(1,2,3,4,5)
    name(avto,sex,inet)
    table2(select avto)
    id(1,2,3,4,5)
    name(avto-marcet,avto-top, avto-…)

    table3(text(описание))
    id
    name(avto-marcet)
    text('text text xtet')
    date(12.10.09)
    link('www.avto.ru')
    …..


    Спасибо.
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 27 ноября 2008 г. 14:58, спустя 13 минут 14 секунд

    Ничего не понял. Попробуй повнятней описать структуру данный.
    И собственно, в чем вопрос состоит тоже не понял.
  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz 27 ноября 2008 г. 15:06, спустя 7 минут 11 секунд


    Ничего не понял. Попробуй повнятней описать структуру данный.
    И собственно, в чем вопрос состоит тоже не понял.


    Есть у меня оглавление

    Интернет
    Авто
    ТТТТТ

    В Инренете есть категории (Маркетинг, Рынок и т.д.), в каждой категории есть большое кол-во описаний (дата, текст, имя, и т.д.)

    Вопрос: Как это все организовать в БД? И привязать друг к другу…
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 27 ноября 2008 г. 15:23, спустя 17 минут 24 секунды

    А в Авто есть категории?
    В категориях есть подкатегории?
  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz 27 ноября 2008 г. 15:29, спустя 5 минут 34 секунды


    А в Авто есть категории?
    В категориях есть подкатегории?


    да, Вы меня правильно поняли.
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 27 ноября 2008 г. 15:32, спустя 3 минуты 42 секунды

    Тогда все категории и подгатегории это дерево.
    Существует много способов хранения деревьев в таблицах БД. Простейший это в каждой записи хранить ID родительской категории.
    Т.е. таблица имеет столбцы:

    Id
    Parent_Id
    Name

    Для верхнего уровня Parent_Id считаем нулем.

    Описания храним во другой таблице.

    Следующий вопрос: "Одно описание всегда относится к одной категории или может относится к нескольким?"
  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz 27 ноября 2008 г. 15:38, спустя 5 минут 47 секунд



    Следующий вопрос: "Одно описание всегда относится к одной категории или может относится к нескольким?"

    Одно описание всегда относится к одной категории.

    Расскажите подробнее плиз. поподробнее о записях в perent_id
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 27 ноября 2008 г. 15:41, спустя 2 минуты 27 секунд

    1. Тогда в таблице описаний хранишь id категории
    2. А что непонятно насчет парента? Вроде рассказал, подробней некуда …
  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz 27 ноября 2008 г. 15:44, спустя 3 минуты 25 секунд

    Спасибо, буду пробовать! Если возникнет вопрос буду писать сюда же, поэтому просьба модераторам не закрывать тему.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 27 ноября 2008 г. 15:45, спустя 34 секунды


    Спасибо, буду пробовать! Если возникнет вопрос буду писать сюда же, поэтому просьба модераторам не закрывать тему.
    у нас не принято закрывать темы )
    все умрут, а я изумруд
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 27 ноября 2008 г. 16:00, спустя 15 минут 23 секунды



    Спасибо, буду пробовать! Если возникнет вопрос буду писать сюда же, поэтому просьба модераторам не закрывать тему.
    у нас не принято закрывать темы )
    у нас принято их зафлужевать
  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz 28 ноября 2008 г. 0:15, спустя 8 часов 14 минут 49 секунд


    Создал 2 таблицы

    # glav(id_glav, name)

    id    name
    1    Автомобили

    # razdel(id_razdel, id_glav, nameraz)

    id_razdel    id_glav    nameraz
    1                  1               rrrrr
    2                  1               nnnnn
    3                  1                ffffff


    Пытаюсь выбрать все категории, где glava `name`="Автомобили"
    $glavid = mysql_query('SELECT `id_glav` FROM `glav` WHERE `name`="Автомобили" LIMIT 1', $db);
    if (isset($glavid))
    {
    $razdel = mysql_query('SELECT * FROM `razdel` WHERE `id_glav`='.$glavid.';');

    }


    Скачите что сделал не так? Или все правильно?

  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 28 ноября 2008 г. 0:45, спустя 30 минут 42 секунды

    1. Во первых, почитай в документации что возвращает mysql_query
    2. Во вторых, с какой целью искать id по имени раздела? Обычно бывает наоборот.
  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz 28 ноября 2008 г. 0:54, спустя 9 минут 3 секунды



    2. Во вторых, с какой целью искать id по имени раздела? Обычно бывает наоборот.

    потому что
    Во второй проще записать цифру, а не слово "Автомобили"

    id_razdel-  id_glav   nameraz
    1 ————1———— rrrrr
    2  ————1———- nnnnn
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 28 ноября 2008 г. 1:01, спустя 6 минут 11 секунд

    Насчет цифры ты правильно понимаешь.

    Откуда изначально берется имя? Обычно на сайте есть меню, т.е. перевираются ВСЕ разделы верхнего уровня, дальше мы либо сразу ищем подразделы по id для каждого, либо в ссылку на раздел вставляем id и по клику ищем подразделы, опять таки по id которое взяли из ссылки. Дык, откуда изначально берется имя?

    Т.е. текст после WHERE явление редкое. Такое бывает разве что из формы поиска …

Пожалуйста, авторизуйтесь, чтобы написать комментарий!