Хорошо ли сохранять огромную информацию о пользователях в таблице MySQL, если вы хотите отобразить ее для дальнейшего использования? - PullRequest
2 голосов
/ 28 июля 2010

У меня есть файл с именем discussion.php, в котором находится форма. В этой форме пользователь будет вводить информацию, и информация будет размещена на savedisc.php. Ниже приведен код для discussion.php:

<form action='savedisc.php' method='post'>
  <p>What would you like to discuss?</p>
  <textarea name='message' rows='15' cols='40'></textarea>
  <input type='submit' value='Submit' />


</form>

Когда пользователь нажимает кнопку submit, набранный пользователем текст должен быть сохранен с помощью savedisc.php. То есть Я подключусь к базе данных и сохраню то, что пользователь набрал в textarea.

Теперь, чтобы отобразить информацию, введенную пользователем в текстовой области, я подключусь к базе данных в другом файле и покажу соответствующий контент.

Вот некоторые из моих вопросов: не следует ли сохранить их в базе данных? Потому что позже у меня может быть огромное количество данных в моих таблицах. Есть ли другой способ отображения информации, предоставленной пользователем, без сохранения в базе данных? Или я в порядке? Например, вопрос, который я собираюсь опубликовать прямо сейчас, действительно ли он сохранен в базе данных?

Спасибо.

Ответы [ 5 ]

4 голосов
/ 28 июля 2010

Да!Базы данных хороши для хранения больших объемов данных, так что все в порядке!

Пока вы правильно проверяете данные *, продолжайте!

* - Посмотрите mysql_real_escape_string

3 голосов
/ 28 июля 2010

MySQL отлично способен обрабатывать таблицы с несколькими гигабайтами данных. Я сомневаюсь, что это когда-нибудь станет проблемой.

В качестве альтернативы хранению данных в виде простых файлов, явно лучше использовать MySQL для этой цели.

1 голос
/ 28 июля 2010

Большинство CMS используют базу данных для хранения фактического текста и разметки для своих историй; крупные сайты, такие как New York Times и Washington Post, используют базы данных для хранения своих историй, чтобы их можно было искать и перекрестно ссылаться по мере необходимости. Хотя все это можно сделать в виде файлов в файловой системе, современные базы данных оптимизированы для таких операций.

Одна вещь, которую вам нужно сделать, это выбрать тип таблицы и тип данных, которые будут использоваться для хранения ваших данных. MySQL предоставляет несколько механизмов хранения для создания таблиц ( InnoDB и MyISAM являются наиболее популярными). Что касается типов данных , CHAR и VARCHAR хороши для относительно небольших объемов текста, а TEXT подходит для больших объемов текста. (Если вы храните необработанные двоичные данные, такие как изображения, а не текст, то вас больше интересуют BINARY, VARBINARY и BLOB ).

Каждый механизм хранения и тип данных обеспечат различные компромиссы для производительности и функциональности, но для относительно небольших и простых приложений MyISAM и VARCHAR или TEXT будут хорошим выбором для ваших нужд.

1 голос
/ 28 июля 2010

Базы данных предназначены для хранения большого количества данных и обработки большого количества транзакций.Так что, безусловно, да.

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

Так, например, в вашем savedisc.php

<?php
$message = $_POST['message'];
StoreInDB($message); // some function to store data
echo $message; // this is useful when you want to immediately
               // show the user the information they entered
?>
1 голос
/ 28 июля 2010

Да, это вполне подходящее использование базы данных. Исключением может быть, если размер каждого фрагмента текста очень большой, например 10, 50 или 150 КБ, и в этом случае вы можете рассмотреть вопрос о сохранении его в виде файлов и хранения метаданных файла в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...