philya
15.11.2012 - 23:03
Как лучше это сделать: хранить id тэгов в одной таблице с картинкой, либо создать отдельную таблицу id | id_foto | id_tag. Или есть вариант лучше?
Второй вариант
_____________
VPS от 5$, первые 2 месяца -
бесплатно.
philya
17.11.2012 - 02:13
почему
Zzepish
17.11.2012 - 03:25
Гибче можно манипулировать
SlavaFr
17.11.2012 - 11:33
Цитата (philya @ 16.11.2012 - 22:13) |
почему |
Не исклюичено, что одна картинка относится к нескольким tags.
_____________
↓↓↓↓↓↓↓↓↓↓ответ может быть здесьили в mysql_error();
Michael
17.11.2012 - 12:32
Цитата (philya @ 17.11.2012 - 00:13) |
почему |
И как ты бы стал:
Цитата |
хранить id тэгов в одной таблице с картинкой |
?
На каждый тег - новая строка? Тогда аномалия дублирования информации о картинке.
Если теги полями, то это вообще не дело.
_____________
There never was a struggle in the soul of a good man that was not hard
philya
17.11.2012 - 13:39
Использовал бы строку, в которой хранились id всех тэгов для изображения, вроде этого: 1 4 18 9.
Далее собрал бы все эти id для текущей страницы, запросом вытащил бы из базы соответствующие названия тэгов и расставил их к фото.
Michael
17.11.2012 - 13:44
Ты бы этим нарушил Первый закон нормализации. Учи основы.
_____________
There never was a struggle in the soul of a good man that was not hard
philya
17.11.2012 - 14:02
Учил я основы. Просто подумал, что используя отдельную таблицу для сопоставления изображения и тэгов, ее размер будет в 2 раза(если на каждое изображение будет в среднем 2 тэга) больше, чем таблица, содержащая информацию о самих картинках, и запрос, выводящий все фото и их тэги из базы, будет медленнее работать, чем предложенный мной вариант, но я не уверен, поэтому и спросил здесь.
Michael
17.11.2012 - 14:11
Цитата (philya) |
Учил я основы. |
плохо учил
_____________
There never was a struggle in the soul of a good man that was not hard
SlavaFr
17.11.2012 - 14:51
Цитата (philya @ 17.11.2012 - 10:02) |
запрос, выводящий все фото и их тэги из базы, будет медленнее работать, чем предложенный мной вариант, |
@philya
1) потестирой с запросами типа покажи именна всех тегов к определенной картинке. Тоесть тебе прийдется делать делать jojn по полю которое состаит из "1 34 хх yy"
2) попробуй изменить таг_ид у 1000 картинок с X на Y посредством sql
я думаю уже этих двух упражнений будет достаточно, чтоб увидеть некоторые недостатки предложеного тобой метода.
_____________
↓↓↓↓↓↓↓↓↓↓ответ может быть здесьили в mysql_error();
philya
18.11.2012 - 00:13
1. SELECT `name` FROM tags WHERE id IN (SELECT tags FROM foto WHERE id = ID)
2. UPDATE `foto` SET `tags`= REPLACE(foto.tags, '2,', '3,');
тебе сказали как надо правильно делать, чего упираешься?
Не хочешь так, делай по-своему, к чему тогда топик создавался?
Цитата |
2. UPDATE `foto` SET `tags`= REPLACE(foto.tags, '2,', '3,'); |
а если кроме 2 или 3 там будут 22, 23 и т.п.?
philya
18.11.2012 - 00:24
Хорошо, я неправильно написал, правильно будет так: 2. UPDATE `foto` SET `tags`= REPLACE(foto.tags, ' 2,', ' 3,');
Я не упираюсь, мне просто интересно
Цитата |
правильно будет так: |
не вижу разницы)
если в поле tags будет строка 2, 5, 8, 10, то по указанному запросу поле будет выглядеть так:
3, 5, 8, 10
а если в поле tags будет строка 2, 5, 20, 22, 24, то там уже будет
3, 5, 30, 33, 34
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.