|
|
|
| Не могу сообразить как правильно организовать структуру таблицы.
Упрощенный пример:
В таблице нужно хранить дату date_up (type date), номер проекта id_project (type int 11) и колличество продаж count_sales (type int 11).
Приложение клиент-серверное и данные в этой таблице могут обновляться несколько раз за день.
У меня сейчас проблема в том, что делаю replace данных и появляется новая запись, все равно что я сделал бы insert.
Задача в том, что если дата и номер проекта совпадает, то нужно только обновить колличество продаж в записи.
У меня сейчас попросту не хватает знаний, как правильно должна выглядеть структура это таблицы, как раставить ключи и индексы (и нужны ли они тут).
Я могу добавить инкрементное поле id, находить этот id по дате и номеру проекта, и делать уже update, но думаю это далеко не самое лучшее решение.
Помогите, пожалуйста, кто разбирается. | |
|
|
|
|
|
|
|
для: kotofeich
(24.02.2009 в 22:49)
| | оба актуальных оператора (и REPLACE и INSERT INTO ... ON DUPLICATE KEY UPDATE ...) реагируют на наличие строки, в которой дает совпадение уникальный индекс (в частности первичный ключ)
уникальный индекс (или даже первичный ключ) Вам нужно сделать составным
, UNIQUE KEY `date_id_project` (`date_up`,`id_project`)
|
А какой оператор выбирать - зависит от того, что Вы хотите получить.
чтоб старая строка удалялась перед вставкой новой (DELETE-INSERT), или чтоб в ней изменялись поля (UPDATE) | |
|
|
|