LINUX.ORG.RU

Ваше решение?


0

0

Собственно вопрос такой. Имеем: некий сервер с апачем, MySQL, perl. На нём пишется сайт. Там есть фрагмент, где нужно добавить комментарий. Комментарий, понятное дело, добавляется в форму TEXTAREA и отсылается кнопкой "Добавить". Ясное дело, что данный комментарий должен остаться в базе. Тут можно поступить вот так: в таблице комментариев создать большое текстовое поле символов на 500 и сделать механизм (на javascript, к примеру)который сдержит ввод в TEXTAREA количество символов, количеством более 500. Но вот мне импонирует другой способ: сохранить комментарий в виде некоего txt-файла, а в базе указывать лишь его имя. Это позволит сделать размер комментария неограниченным. Если делать именно так, то последовательность мне мыслится такая: 1. Генерируем уникальное имя файла 2. Перекачиваем содержимое комментария в файл с этим именем 3. Вносим в базу имя файла и остальное, что нужно. Так вот вопрос. Как лучше всего на перле сгенерировать уникальное имя, которое никогда не повторится?

anonymous

$filename = time();

anonymous
()

Спасибо, а существует ли вероятность, что несколько пользователей, нажав кнопку "Добавить" сгенерят одно и тоже имя (2 или 3 пользователя)?

anonymous
()

в UNIX гарантированно что два различных процессов имеют различные PID (на то он[PID] и сделан чтобы различать процессы :) )

lg ★★
()

а я бы сделал такие поля номер мессаги (LONG) номер фрагмента (LONG) строка (100 симв)

нарезал бы всю мессагу на кусочки по 100 символов и записывал частями, а потом по уникальному номеру мессаги собирать ее из частей.

Так мне кажется будет гораздо удобнее работать/искать/анализировать.

Serik
()
Ответ на: комментарий от Serik

Оригинально, но мне кажется - малость громоздко

anonymous
()

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

lg ★★
()

Ля... Чего огород городите? В базу мускульную вносите записи? Вносите. Так каждой записи дайте поле id с флагом autoincrement и пользуйте это ИД как имя файла. Пусть об уникальности у мускуля голова болит.

Nefer
()

А в MySQL нет строк переменной длины?

DKorolkov
()
Ответ на: комментарий от Nefer

Это можно было бы сделать, если б этот autoincrement тутже и прочитывался

anonymous
()

Есть такая фитча в DB LO в MySQL тоже есть для хранения бльших файлов в БД...
Типа передаешь файла получаешь LOID если нужен файл передаешь LOID получешь файл и никаких проблем...в том числе с переносом дампом и тд

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.