Показано с 1 по 4 из 4

Тема: Хитрая таблица в MySQL

  1. #1

    Регистрация
    06.05.2007
    Адрес
    Россия
    Сообщений
    73
    Есть некий результат его необходимо сохранить в неких SQL-таблицах.

    Таблицы следущие[название таблицы(ячейки)]:
    - IP-адреса(id,ip)
    - URL(id,url)
    - request(время, ссылка на IP-адрес, ссылка на URL, GET-параметры, число байт)

    Как сделать чтобы 2-я ячейка была ссылкой на IP адрес из таблицы IP адресов?
    А 3-я ячейка была ссылкой на URL из таблицы URLов?

  2. #2

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Сообщений
    769
    что значит ссылка? если id уникальные поля (скорее всего - первичные ключи), то в третьей таблице во втором и третьем поле храните их. в чем проблема?

  3. #3

    Регистрация
    11.02.2007
    Адрес
    Донецк, Украина
    Сообщений
    96
    Cinic
    то что ты понимаешь под ссылками, насколько я понял, называется связями. Но таблицы в принципе простые - совсем не обязательно это разбивать на несколько таблиц можно хранить в одной. Но если очень хочется юзать связи - используй InnoDB таблицы в них есть возможность указывать для полей FOREIGN KEY аналогично другим СУБД. поддерживается каскадное удаление/обновление и пр. фишки. читай мануал короче

    [Только зарегистрированные пользователи могут видеть ссылки. ]
    [Только зарегистрированные пользователи могут видеть ссылки. ]

    но вобщето можно все это делать и руками без использования связей - некрасиво конечно, но так в основном и делают

  4. #4

    Регистрация
    06.05.2007
    Адрес
    Россия
    Сообщений
    73
    Вобщем вот как реализовал(для тестового задания все это нужно было, бесит):

    Код:
    CREATE TABLE `ips` (
     *`ip_id` int(11) unsigned NOT NULL auto_increment,
     *`address` varchar(15) NOT NULL,
     *PRIMARY KEY *(`ip_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=9;
    
    
    CREATE TABLE `request` (
     *`id` int(11) unsigned NOT NULL auto_increment,
     *`time` varchar(11) NOT NULL,
     *`ip` int(11) NOT NULL,
     *`link` int(11) NOT NULL,
     *`get` text NOT NULL,
     *`size` VARCHAR(64) NOT NULL,
     *PRIMARY KEY *(`id`),
     *FOREIGN KEY (`ip`) REFERENCES `ips` (`ip_id`),
     *FOREIGN KEY (`link`) REFERENCES `urls` (`link_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=9;
    
    
    CREATE TABLE `urls` (
     *`link_id` int(10) unsigned NOT NULL auto_increment,
     *`link` varchar(255) NOT NULL,
     *PRIMARY KEY *(`link_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=9;

Похожие темы

  1. Таблица по центру
    от Aykroyd в разделе Вёрстка сайта
    Ответов: 8
    Последнее сообщение: 04.01.2007, 20:03
  2. Таблица разрушается
    от karlito в разделе Вёрстка сайта
    Ответов: 7
    Последнее сообщение: 25.07.2006, 15:35
  3. Раскрывающаяся таблица
    от ALEXWEBRU в разделе Вёрстка сайта
    Ответов: 3
    Последнее сообщение: 18.08.2005, 16:00
  4. Таблица при печати
    от poltergeyst в разделе Вёрстка сайта
    Ответов: 1
    Последнее сообщение: 16.07.2005, 10:19
  5. таблица в CSS
    от poltergeyst в разделе Вёрстка сайта
    Ответов: 1
    Последнее сообщение: 09.05.2005, 02:49

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •