За последние 24 часа нас посетил 18581 программист и 1657 роботов. Сейчас ищут 955 программистов ...

дублирующиеся NULL в уникальном индексе

Тема в разделе "MySQL", создана пользователем Koc, 29 сен 2009.

  1. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Знаю, что вопрос - бред. В Sql Server это возможно вроде как (да-да, я гуглил перед тем, как начать новую тему).

    Задача:
    есть таблица пользователей id-PK, name(login?)-UK, mail-UK, pass, salt, date_add, is_active, ...
    Смысл в том, что на некторых проектах логин не нужен. Пользователь заходит через мыло. Как быть в этом случае? имхо целесообразно помещать в поле name NULL или пустую строку, но тогда пропадает возможность сделать уник.
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Зачем тебе одинаковая таблица, под проекты с разными требованиями?
     
  3. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    потому что есть определенный каркас приложений и нет желания подпиливать что-то (в данном случае таблица из БД) под каждый отдельный проект.
     
  4. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Я, думаю, если
    то надо подпиливать.
     
  5. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    хм. Нужно было всего лишь проверить. Работает и так все
    [sql]-- phpMyAdmin SQL Dump
    -- version 3.2.0
    -- http://www.phpmyadmin.net
    --
    -- Хост: localhost
    -- Время создания: Сен 29 2009 г., 18:49
    -- Версия сервера: 5.0.45
    -- Версия PHP: 5.2.4

    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

    --
    -- База данных: `brouzie_acl`
    --

    -- --------------------------------------------------------

    --
    -- Структура таблицы `tt_users`
    --

    CREATE TABLE IF NOT EXISTS `tt_users` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `name` varchar(20) default NULL,
    `mail` varchar(100) NOT NULL,
    `pass` char(32) NOT NULL,
    `salt` char(3) NOT NULL,
    `date` datetime NOT NULL,
    `need_permissions` tinyint(1) NOT NULL default '0',
    `is_admin` tinyint(1) NOT NULL default '0',
    `is_active` tinyint(1) NOT NULL default '0',
    PRIMARY KEY (`id`),
    UNIQUE KEY `mail` (`mail`),
    UNIQUE KEY `name` (`name`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;

    --
    -- Дамп данных таблицы `tt_users`
    --

    INSERT INTO `tt_users` (`id`, `name`, `mail`, `pass`, `salt`, `date`, `need_permissions`, `is_admin`, `is_active`) VALUES
    (1, 'root', [email='aa@yandex.ru]'aa@yandex.ru[/email]', 'ef425179721171aa6c9478b06fb26ac6', '$c7', '2009-08-10 10:49:02', 0, 1, 1),
    (4, 'Koc', [email='bb@ya.ru]'bb@ya.ru[/email]', '8321c515ee157ad1ce7e1c3d6eaffb82', '53I', '2009-08-28 12:50:06', 1, 1, 1),
    (5, NULL, [email='aa@aa.aa]'aa@aa.aa[/email]', '', '', '0000-00-00 00:00:00', 0, 0, 0),
    (6, NULL, [email='aa@a3a.aa]'aa@a3a.aa[/email]', '', '', '0000-00-00 00:00:00', 0, 0, 0);
    [/sql]
     
  6. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    феее, щас работаю с таким проектом как-раз. ужас!
     
  7. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    TheShock
    окей. UTF так UTF.

     
  8. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Koc, а при чём тут утф? :)
     
  9. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    у него проблемы с регулярками, когда работаем с мультибайтовыми строками.
    http://dev.mysql.com/doc/refman/5.1/en/regexp.html
    http://www.php.ru/forum/viewtopic.php?p ... 9f257717ef
     
  10. SDR

    SDR Активный пользователь

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    TheShock
    в чём ужос то?
    никогда не понимал UTFных фетишистов
    вы чё, китайцы чтоли? )))))