#php #mysql #database #database-design #cron
#php #mysql #База данных #база данных-дизайн #cron
Вопрос:
Я играю с этой идеей, когда я сохранял «журналы» в таблице «LOGS», где каждая строка содержала информацию типа «id», «title», «logtext», «views», «upvotes», «downtes» … вы получаете основную идею. И все это отлично работает для отображения журналов на странице, и все это делается в одной таблице, которая приятна и понятна.
Но потом я решил, что хочу попробовать что-то вроде комментариев к этим журналам. Обычно ли наряду со строкой, созданной в таблице «LOGS», также просто создавать совершенно новую таблицу в базе данных с .. допустим, идентификатором, тогда эта таблица может содержать информацию о комментариях? Например, текст имени электронной почты? Я просто думаю, что это будет своего рода безумием — в конечном итоге иметь тысячи таблиц…когда раньше они действительно были просто строками в одной таблице.
И тогда проблема с моим cron, который я собирался использовать, приведет к удалению элементов через месяц на основе метки времени в строке … но в таблицах нет метки времени, поэтому я не могу сказать, какие таблицы удалять.
Я не знаком с «blobs» было бы типично иметь способ уместить все комментарии в одну ячейку или что-то в этом роде?
Комментарии:
1. большие двоичные объекты обычно предназначены для двоичного хранения, как изображения. Итак, да, я бы сохранил текст в текстовом поле, а не в двоичном поле.
Ответ №1:
Я думаю, что вы добиваетесь чего-то подобного:
TABLE LOGS
| logid | title | views | ...
TABLE COMMENTS
| comid | logid | author | comment | ...
И затем всякий раз, когда вы извлекаете определенный журнал для отображения, вы также продолжаете извлекать любые комментарии к этому журналу ~ Аналогично, всякий раз, когда вы удаляете из LOGS
просто убедитесь, что одновременно удаляете из COMMENTS
~
Если вы ДЕЙСТВИТЕЛЬНО хотите, чтобы все это было в ОДНОЙ таблице, я рекомендую json_encoding массив комментариев PHP в TEXT
поле type comments.
Ответ №2:
У меня было бы текстовое поле с разделителями (возможно, используйте точку с запятой или колокольчик, что-то, что не часто используется в обычном тексте), чтобы разграничить, а затем объединить различные текстовые поля из внешнего интерфейса и поместить единственное поле в базу данных с именем user_info или comments или что-то еще