none
Порядок строк в базе данных (MySql) RRS feed

  • Вопрос

  • Столкнулся с неприятной проблемой, которую не могу решить в виду низких знаний в области баз данных.

    Мне нужно что бы каждая новая строка таблицы добавленная с разных компьютеров может даже в одно и то же время добавлялось в конец таблицы, то есть Count+1, причем при добавлении происходила проверка на количество строк и если их количество превышает заданный порог, то удаляется самая ранняя строка, то есть с index = 0

    Казалось бы все просто, но строки вставляются в произвольном порядке куда им вздумается и все как то не очень понятно.

    Подскажите как решаются такие задачи.

    21 апреля 2011 г. 19:03

Ответы

Все ответы

  • CREATE TABLE table_name 
    ( 
      id INTEGER AUTO_INCREMENT PRIMARY KEY 
    ) 
    
    

    http://www.t-sql.ru
    • Помечено в качестве ответа LXGDARK 22 апреля 2011 г. 15:32
    22 апреля 2011 г. 2:26
    Модератор
  • База удаленная. Таблицы в ней созданы с помощью VS2010, DataSet и TableAdapter созданы студией автоматически, поэтому написанное вами мне не о чем не говорит...

    Если можно подробнее распишете.

    22 апреля 2011 г. 6:38
  • База удаленная. Таблицы в ней созданы с помощью VS2010, DataSet и TableAdapter созданы студией автоматически, поэтому написанное вами мне не о чем не говорит...

    Если можно подробнее распишете.


    у вас какая версия СУБД? точно MySQL вообще?!
    http://www.t-sql.ru
    22 апреля 2011 г. 11:19
    Модератор
  • Да точно. Установлен MySql Net connector, который добавил в студию нужный функционал.

    Подключаюсь к базе, создаю таблицы, наполняю нужными колонками и на их основе создаю (с помощью мастера в VS) DataSet и TableAdapter

    Все что остается, это создать экземпляры DataSet и TableAdapter и работать уже со строками таблицы в коде. Самого создания таблиц в коде я не делаю

    22 апреля 2011 г. 12:00
  • у таблицы нет никакого порядка...это множество, которое может быть отсортированно в любой последовательности

    "причем при добавлении происходила проверка на количество строк и если их количество превышает заданный порог"

    А это вообще не понятно, о каком пороге идёт речь!?


    http://www.t-sql.ru
    22 апреля 2011 г. 12:59
    Модератор
  • Это офлайн чат. Сервера нет, но есть база данных и есть идея использовать ее для создания чата.

    Порог хранимых в базе сообщений чата, предположим 50, поэтому когда один из пользователей добавляет сообщение, которое является 51, мне нужно удалить самое раннее из хранимых в базе. Причем сообщения должны быть в базе в том порядке в котором они добавляются пользователими...

    Вот такая зада и пока нет способов ее решения...

    22 апреля 2011 г. 13:10
  • Причем сообщения должны быть в базе в том порядке в котором они добавляются пользователими...

    у записей в таблице нет порядка самого по себе...если у вас есть поле-счетчик (AUTO_INCREMENT), то оно может быть флагом...а лучше поле с Датой-временем, соответственно вы всегда можете явно определить какая запись вставлена раньше
    http://www.t-sql.ru
    22 апреля 2011 г. 14:58
    Модератор
  • Собственно изначально я и делал с датой временем, но с толкнулся с рядом проблем, которые решил перейдя к поле-счетчику (AUTO_INCREMENT) и добавлением проверочных алгоритмов... пока вроде работает )))

    22 апреля 2011 г. 15:32