2015-07-09 1 views
-2

У меня есть программа просмотра фотографий с функцией комментариев для нее, чтобы каждый мог комментировать эту фотографию, такую ​​как Facebook.Хранение нескольких данных в одной ячейке столбца MySQL

1- Мой вопрос заключается в том, что это возможно, чтобы иметь все комментарии в одной ячейке MySQL на основе фото ид, как:

PhotoId | Path  | Date  | Comments 
198  | p/car.png | 01/02/2015 | <John, profile link'www.example.com/john', Nice Photo> 
           | <Charles, profile link'www.example.com/Charles', Nice Photo> 
           | <Smith, profile link'www.example.com/Smith', Nice Photo> 
           | <Mark, profile link'www.example.com/Mark', Nice Photo> 
           | <Max, profile link'www.example.com/Max', Nice Photo> 
________________________________________________________________________________________________ 
199  | p/pen.png | 01/02/2015 | <Mike, profile link'www.example.com/john', Write well> 
           | <Alex, profile link'www.example.com/Charles', That is your pen> 

2- Можно ли удалить любой комментарий от конкретного PhotoId от комментатора от Комментарий column.

Если у вас есть какой-либо ответ на этот вопрос, тогда это хорошо, если нет, то пожалуйста, проведите меня.

+0

Все возможно, но позвольте мне спросить вас, почему вы хотите это сделать? У него нет никаких преимуществ. – Viral

+0

Это плохая идея, и вы должны прочитать о нормализации базы данных. –

+0

@ Вирусы хотят это сделать, потому что я хочу безопасного пространства и сделать все, что легко достичь. – ARA

ответ

1

Возможно, что вы спросите у - используйте serialize или json_encode. Невозможно выполнить то, что вы просите в , не извлекая данные и неэтериализируя или декодируя его.

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

// Edit - Пример использования Serialize

Для ввода информации в базу данных.

$data_as_string = serialize(array(
    0 => array('John', "profile link'www.example.com/john'", 'Nice Photo'), 
    1 => array('Charles', "profile link'www.example.com/Charles'", 'Nice Photo'), 
    2 => array('Smith', "profile link'www.example.com/Smith'", 'Nice Photo'), 
    3 => array('Mark', "profile link'www.example.com/Mark'", 'Nice Photo'), 
    4 => array('Max', "profile link'www.example.com/Max'", 'Nice Photo') 
); 

Чтобы получить его как массив.

$data_as_array = unserialize($row['comments']); 
+0

Спасибо, что вы подразумеваете под ** serialize **, можете ли вы предоставить мне пример – ARA

+0

Ответ отредактирован с примером. –

0

Все возможно.

Предложения

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

тогда было бы много таблицы – ARA

+0

У вас есть ограничение на числовые таблицы? – Jpec

+0

нет, но притворяется, что у меня 1000 фотографий, и у каждой фотографии есть 20 комментариев от пользователя, это было бы 20000 таблиц, и я думаю, что это делает базу данных медленной. – ARA

Смежные вопросы