|
|
|
|
|
для: BinLaden
(05.10.2008 в 10:41)
| | Один раз было дело... не помню что за приложение было, но была необходимость очень часто вставлять и удалять записи. Ну а вообще да, в подавляющем большинстве случаев вполне достаточно типа INT. | |
|
|
|
|
|
|
|
для: cheops
(04.10.2008 в 19:22)
| | > Используйте BIGINT <...> Я по крайней мере ещё не разу не сталкивался с ситуацией, когда он исчерпывался.
А что, Вы встречались с ситуацией, когда INT не хватало? :) | |
|
|
|
|
|
|
|
для: cheops
(04.10.2008 в 19:22)
| | так и сделал:) будем надеяться на лучшее :D | |
|
|
|
|
|
|
|
для: sl1p
(04.10.2008 в 17:19)
| | >Хм, спасибо.. я просто босюь этих авто_инкрементов ибо поле типа инт заканчивается когдато.. настораживает немного)
Используйте BIGINT - его исчерпать практически нереально. Я по крайней мере ещё не разу не сталкивался с ситуацией, когда он исчерпывался. | |
|
|
|
|
|
|
|
для: cheops
(04.10.2008 в 13:42)
| | Хм, спасибо.. я просто босюь этих авто_инкрементов ибо поле типа инт заканчивается когдато.. настораживает немного)
хух полегчало) сделал наконец) спасибо ещё раз) | |
|
|
|
|
|
|
|
для: sl1p
(04.10.2008 в 12:31)
| | Лучше введите сурогатный первичный ключ id (снабдив его атрибутом AUTO_INCREMENT), а ts сделайте обычным полем - иначе у вас в одно и то же время нельзя будет отправлять разные сообщения - только одно сообщение в секунду. Для добавления двух записей можно использовать многострочный INSERT
<?php
$query = "INSERT INTO `private` (`id`, `ts` , `owner_nick_id` , `whom_nick_id` , `from_nick_id` , `msg` )
VALUES(NULL, '$ts','$whom_id','$whom_id','$from_id','$msg'), (NULL, '$ts','$whom_id','$whom_id','$from_id','$msg')";
?>
|
| |
|
|
|
|
|
|
|
для: sl1p
(04.10.2008 в 12:09)
| | упс забыл спросить:)
возможно ли както добавить 2 записи одним запросом?..
делаю так:
mysql_query("INSERT INTO `private` ( `ts` , `owner_nick_id` , `whom_nick_id` , `from_nick_id` , `msg` ) VALUES('$ts','$whom_id','$whom_id','$from_id','$msg')");
mysql_query("INSERT INTO `private` ( `ts` , `owner_nick_id` , `whom_nick_id` , `from_nick_id` , `msg` ) VALUES('$ts','$from_id','$whom_id','$from_id','$msg')");
не пишет изза одинакового поля ts /primary key
.. как вылечить?) | |
|
|
|
|
|
|
|
для: sl1p
(02.10.2008 в 02:31)
| | всем огромнейшее спасибо!:) | |
|
|
|
|
|
|
|
для: cheops
(04.10.2008 в 10:52)
| | Тогда уж лучше сосчитать границу средствами php
$range = strtotime('-1 month');
$sql = "DELETE FROM private WHERE nick_id = '$id' AND ts < $range";
|
| |
|
|
|
|
|
|
|
для: sl1p
(04.10.2008 в 08:54)
| | >Хм идея в принципе интересная, но это есть чат и такого будет не мало*2..
>не загнётся ли бд?)
Да не должна, иначе у вас двухкратный скачок посещаемости будет приводить к загибу :))) Обычно влияет, если увеличение объема или нагрузки возрастает на порядки, а в разы - это не страшно.
>и ещё если цепляться за ваш вариант,то как сравнить 2 таймстампа не переводя его в "понимаемую" дату...?)Тоесть как узнать между ними нужную мне разницу?
Здесь удобно воспользоваться функцией FROM_UNIXTIME(), которая переводит время из TIMESTAMP-формата в MySQL-представление. Например, следующий запрос удаляет все записи, которым больше 1 месяца
DELETE FROM private
WHERE nick_id = '$id' AND FROM_UNIXTIME(ts) < NOW() - INTERVAL 1 MONTH
|
| |
|
|
|
|