Forum Webscript.Ru
Общие => Базы данных => Тема начата: webxtor от 26 Февраля 2005, 12:46:33
-
У меня есть таблица, в которой хранятся некоторые данные, внесенные пользователями.
Появилась задача пропускать все изменения и создания новых записей через модератора. Сайт расчитан на большую посещаемость, а обьем данных таблицы будет около 300 тыс записей.
Стоит ли создавать новую таблицу, где хранить ожидающие модерации данные, с целью снизить нагрузку на таблицу, из которой постоянно идет выборка?
Еще есть вариант немного изменить структуру таблицы, добавив новое поле moderated TINYINT(1), но в таком случае выборка получит еще одно условие в where: and moderated=1, что немного уменьшит скорость работы.
Как же лучше посупить?
Спасибо за внимание!
-
webxtor
1. Изобретать велосипед, нужно тогда, когда это оправдано и все имеюшиеся средства уже израсходованы... (например индексы).
с целью снизить нагрузку на таблицу, из которой постоянно идет выборка?
2. ИХМО не правильно сформулировано понятие... нагрузка тут совсем не причем, если имееться ввиду уменьшение кол-ва записей в таблице, то безусловно имеет... но только после того как выполнен п.1 ...
Еще есть вариант немного изменить структуру таблицы, добавив новое поле moderated TINYINT(1), но в таком случае выборка получит еще одно условие в where: and moderated=1, что немного уменьшит скорость работы.
3. Поясните это изречение...
-
2. Имеется в виду и количество записей и неоправданно постоянно увеличивающийся id (который auto_increment) с каждым новым редактированием. И мне казалось, что увеличение запросов к таблице (кроме выборки будут еще запросы касательно редактирования и модерирования) снизит производительность и надежность хранения данных. Однако, похоже для таких средних обьемов боятся нечего..
3. Ну вот у меня есть таблица моя. Из нее идет выборка по id или по category_id. Если в этой же таблице хранить еще и данные, ожидающие модерации, то нужно будет добавить еще как минимум одно поле - original_id. Теперь я думаю, что можно поле category_id для таких записей оставлять пустым, и оно автоматически не будет участвовать в выборке. Ну а moderated будет указывать на то, вынес ли модератор какое-то решение касательно этой записи или нет.
Тогда возникает вопрос: Что делать после одобрения редактирования модератором?
-удалять временную запись, обновить оригинальную
-или же обновить все поля на пустые вместо удаления, а original_id оставить, и при повторном редактировании использовать эту же временную запись