За последние 24 часа нас посетили 17237 программистов и 1302 робота. Сейчас ищут 1974 программиста ...

row id

Тема в разделе "PHP и базы данных", создана пользователем NIKO, 5 сен 2006.

  1. NIKO

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

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    как в Б/Д для сообщений чата поставить id чтоб сортировать сообщения по нему!
     
  2. Anonymous

    Anonymous Guest

    Наверное тебе надо не ID а TIMESTAMP ставить лучше. По крайней мере, я бы так сделал.
     
  3. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    id NOT NULL auto_increment

    при выборке
    ORDER BY id DESC
     
  4. Anonymous

    Anonymous Guest

    ув. vb - а вы всю историю чата в одной таблице хранить предлагаете?
     
  5. Vitas

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

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Горбунов Олег, интересно, а что Вам машает организовать чистку старых данных?
     
  6. Anonymous

    Anonymous Guest

    Ничто не мешает. Но вот только значение автоинкремента не почистишь. А надо сортировать то! а указание TIMESTAMP будет как раз гарантией, что будет сортировка по времени и дате сообщения, а не по эфемерному ID. И как вы собираетесь чистить по ID? И допустим класть в логи, по одному дню?

    Можете на ты, я не обижусь. ;)
     
  7. def

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

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    интересно, а откуда ты взял слово история ? :)
     
  8. Anonymous

    Anonymous Guest

    история, была использована как термин, history, который слава богу вроде все знают. Я начал спорить, потому что у варианта с ID очень мало потенциала для развития скрипта, точнее, вообще нет. Я считаю, что тут отвечают не ради цифирки в сообщении, а что бы натолкнуть на верную мысль, или найти более оптимальный вариант. А отвечать ради того, что бы отвязались, имхо, моветон.
     
  9. def

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

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    ага, понял мысль.

    но, отвечают обычно на сам вопрос, а не советуют лучшее (дабы не грузить лишней информацием), ну это я так привык, может и напрасно.

    к слову сказать, чаты не должны хранить сообщения, ни к чему это абсолютно.
     
  10. Anonymous

    Anonymous Guest

    2def, тоже, спорное место... там может хранится для модерирования например... или что нить такое. Суть действительно не в этом. Кстати, можно просто например в полночь брать и в файлик их кидать. и gzip'ом жать. В принципе. =)
    Я может здесь и недавно, но считаю, что форум как раз для таких обсуждений. =) Просто если разделять всех только на тех "кому уже ничего не поможет" и тех "кто уже все знает" то нам всем хватит одного форума на всех в постСССР, и то только чтоб о турнирах в CStrike договариватся. ;)

    Ох, и на оффтопил-то, на оффтопил... :oops:
     
  11. def

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

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    хмык, отвечу пространно и спать уже пора :)

    постмодерирования ? а нафига ?

    в корне не согласен.. вопрос - "как сделать", или вопрос "как сделать или может можно сделать иначе ?" совершенно разные. не нужно, имхо, все под одну косу косить.

    ps. начинающие спросят именно - как сделать - более опытные - не как сделать, а как сделать правильно. почувствуйте разницу (с) ;)
     
  12. NIKO

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

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    так как мне сделать id NOT NULL auto_increment ?
    я про создание id В пхп май админ :) ?
    Простто создать ид varchar(40) и потом в SQL написать id NOT NULL auto_increment ?
     
  13. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. ALTER TABLE `tablename` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD KEY (`id`)
     
  14. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    NIKO, забыл указать тип int, не надо varchar мучать :)
    Код (Text):
    1. id int NOT NULL auto_increment
    ув. Горбунов Олег, был поставлен вопрос, и дан ответ на _поставленный вопрос_. Очистить значение auto_increment можно запросом
    Код (Text):
    1. DELETE FROM table
    .

    Не зависимо от того по timestamp или по id будут сортироваться записи - на мой взгляд (и, если ничего не путаю, согласно четырем(пяти?) нормальным формам базы данных) поле id все равно должно быть. И в данном случае я думаю оно должно быть автоинкрементным, чтобы не загружать сервер лишними подсчетами.

    С уважением, vb
     
  15. Anonymous

    Anonymous Guest

    Няк.. Какие тут все... любители точности, идеалы сами в себе. Незнакомые с понятием "полемика".
     
  16. Belegnar

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

    С нами с:
    11 фев 2006
    Сообщения:
    299
    Симпатии:
    0
    В споре ни одной истины рождено не было. :)
     
  17. Anonymous

    Anonymous Guest

    Да ну? А если собственные посты посмотреть? Не спорим, не ищем истину? ну-ну...
     
  18. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
  19. Goryn

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

    С нами с:
    4 апр 2006
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    Ярославль
    Горбунов Олег
    1. Зачем чистиь значение автоинкремента?
    2. ID является уникальным идентификатором сообщения в чате и ключем, по которому можно построить связь с несколькими таблицами или с несколькими полями другой таблици(это уж как БД построить).
    3. Если очень хочеться хранить данные за какой-либо прошлый период, в определенный переносим данные из рабочих таблиц в Histry(здесь уже ключем будет ID+Дата сообщения), удаляем все из рабочих таблиц.
     
  20. Anonymous

    Anonymous Guest

    1. - затем, что он не резиновый, а при активной работе чата, сколько строк будет вставлятся в секунду?
    2. - _полностью_согласен_. Я что, где то предлагал убрать ID записей? я сказал лишь, что _сортировать_ надо по TIMESTAMP.
    3. - +Дата сообщения, те. TIMESTAMP о котором я говорил. Вы сами пришли к моему ответу, так что же спорите?
     
  21. NIKO

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

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    Так к какому результату мы пришли?
     
  22. Goryn

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

    С нами с:
    4 апр 2006
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    Ярославль
    Используй и то и другое :D
     
  23. Anonymous

    Anonymous Guest

    Точно! =) От ID отказыватся нельзя. Сортировать лучше по TIMESTAMP... наверное. Но не обязательно.
     
  24. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    Что и требовалось доказать ;).
     
  25. Anonymous

    Anonymous Guest

    vb, пардон, я нигде не предлагал от ID отказыватся.