За последние 24 часа нас посетили 20657 программистов и 1704 робота. Сейчас ищут 1860 программистов ...

Помогите спроектировать БД

Тема в разделе "PHP и базы данных", создана пользователем A.B.C., 26 июн 2010.

  1. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    Здравствуйте. Помогите правильно спроектировать задачу. (MySQL)

    1. Автомашины

    2. Делятся на марки ВАЗ, БМВ, АУДИ.....Запорожец

    3. ВАЗ делится на модели 01,02..10 модель
    БМВ делится на X6, X5....

    Вопрос такой:

    Либо создать одну таблицу в заглавии столбцов которой будут стоять марки, а модели будут идти в строчку...например ВАЗ и под ним список моделей, следущий столбик Тойоты...естественно моделей у Тойоты больше чем у ВАЗа, поэтому в ВАЗовском столбике будет много пустых строчек.
    Кроме этого, невозможно учесть весь список марок и придется расширять таблицу столбиками, например, под Фольксваген
    При получении инфы со столбика ВАЗа, например, нужно будет писать условие для пустых строчек и т.д.


    Либо, сделать много маленьких таблиц для каждой марки, например 40-50...и количество таблиц может также увеличиваться.


    Как считаете, какой вариант более приемлем коллеги?
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    у меня на сайте стоит скачанная база авто с марками и моделями, вот так устроено:
    это табличка с марками
    [sql]CREATE TABLE IF NOT EXISTS `table10` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `mark` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `mark` (`mark`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=128 ;[/sql]
    а эта с моделями
    [sql]CREATE TABLE IF NOT EXISTS `table11` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `mark_id` int(11) DEFAULT NULL,
    `model` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `mark_id` (`mark_id`,`model`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1546 ;[/sql]
     
  3. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    а если так:

    (таблица1
    id | Marka | Table_model |
    1 ВАЗ Таблица 2
    2 БМВ Таблица 3

    и

    (таблица2)
    ID | model
    1 о1 модель
    2 02 модель
    3 ...
    4 10 модель
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    а если марок будет тысячи, то тысячу таблиц создавать будите?
     
  5. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    ок...спасибо я все понял!!!
     
  6. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    почитайте нормализацию и де нормализацию бд, я сам там не сильно шарю пока