Задать вопрос
  • Как организовать базу данных?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Применительно к структуре таблиц, предложенной sayber: добавь в questions поле count типа int со значением по умолчанию 0, а на таблицу answers (должна быть InnoDB) повесь триггеры:

    DELIMITER $$
    
    CREATE DEFINER = 'root'@'%' TRIGGER answers_after_insert
    AFTER INSERT ON answers FOR EACH ROW
    BEGIN
      UPDATE questions
      SET questions.count = questions.count + 1
      WHERE questions.question_id = NEW.question_id;
    END
    
    $$
    
    CREATE DEFINER = 'root'@'%' TRIGGER answers_after_delete
    AFTER DELETE ON answers FOR EACH ROW
    BEGIN
      UPDATE questions
      SET questions.count = questions.count - 1
      WHERE questions.question_id = old.question_id;
    END
    
    $$
    
    DELIMITER;


    В этом случае поле questions.count автоматически будет содержать точное кол-во ответов на вопрос и фильтрация/сортировка по кол-ву ответов становится тривиальной.
    Ответ написан
    Комментировать
  • Можно ли использовать WordPress или нужно писать свой движок?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    WordPress хорош только для тех случаев, когда вся структура данных укладывается в стандартную иерархию (страницы, посты, категории, метки, произвольные поля, таксономия и т.д.). Т.е. когда самописных SQL-запросов вообще не требуется.

    Если же необходимо большое кол-во сложных запросов, то лучше брать не CMS, а фреймворк (например, Yii). Сложность написания сайта не намного больше (для всех стандартных вещей существуют готовые модули), зато получаешь полный контроль над запросами к БД.
    Ответ написан
    Комментировать
  • Могут ли возникнуть дубли хешей?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Абсолютно НЕнормальное. Прочитай на wiki про "парадокс дней рождения". Вероятность коллизии для абсолютно равномерного распределения равна 1/sqrt(2^32)=1/(2^16)=1/65536. В реальности crc32 не обеспечивает равномерного распределения и потому вероятность коллизии будет намного больше.

    К тому же столь короткий адрес приведет к тому, что злоумышленник сможет добраться до чужих заказов путём простого перебора.
    Ответ написан
    Комментировать