@yii2ru

Страница 854 из 1721
Ad.x ??
18.12.2017
12:59:56
ктонить в курсе, есть вменяемый способ игнорировать ошибки при вставке записей, которые должны быть уникальными? public function addCategory(Category $category) { $exists = ThumbsCategories::find() ->where(['category_id' => $category->category_id, 'thumb_id' => $this->thumb_id]) ->exists(); if (!$exists) { $this->link('categories', $category); } } такой кастыль щас с проверкой. many-to-many связь, в связующей таблице primary key: category_id | thumb_id (уникальные все типа)

Maxim
18.12.2017
13:14:45
я не понял вопрос

Konstantin
18.12.2017
13:14:59
Я тоже

Google
Konstantin
18.12.2017
13:15:19
Проверку на уникальность что ли надо

Maxim
18.12.2017
13:16:04
или надо убрать, а в бд есть. или нужен составной внешний ключ. я хз че там

Konstantin
18.12.2017
13:16:27
Хз

Screamie
18.12.2017
13:52:03
Коллеги, пришла тут в голову одна схема для хранения галлерей изображений. Хочу прокунсультироваться у тех кто шарит) Допустим есть у меня туева хуча изображений, которые распределены по галереям. У этих изображений есть подписи и другая инфа еще и на разных языках. Каждое изображение я хочу хранить в БД. С примерно таким набором полей: id, path, alt, title, intro, description Но из-за мультиязычности это дело нужно разбить на три таблицы (или больше в зависимости от кол-ва языков). И вот тут меня плющит прожорливость запроса в БД в момент вызова галереи. Дернуть страницу -> join галереи -> join изображения -> join языковой версии контента и так для каждой галереи коих на странице может быть много. Если например у галереи сделать поле tpl куда записывать уже свормированный HTML код галлереи и отдавать ее всю одним полем это норм?

Maxim
18.12.2017
13:57:02
Коллеги, пришла тут в голову одна схема для хранения галлерей изображений. Хочу прокунсультироваться у тех кто шарит) Допустим есть у меня туева хуча изображений, которые распределены по галереям. У этих изображений есть подписи и другая инфа еще и на разных языках. Каждое изображение я хочу хранить в БД. С примерно таким набором полей: id, path, alt, title, intro, description Но из-за мультиязычности это дело нужно разбить на три таблицы (или больше в зависимости от кол-ва языков). И вот тут меня плющит прожорливость запроса в БД в момент вызова галереи. Дернуть страницу -> join галереи -> join изображения -> join языковой версии контента и так для каждой галереи коих на странице может быть много. Если например у галереи сделать поле tpl куда записывать уже свормированный HTML код галлереи и отдавать ее всю одним полем это норм?
норм! Только если верстка табличная

Ad.x ??
18.12.2017
13:57:18
я не понял вопрос
карочи в связующей таблице составной праймори ключ category_id | thumb_id. Он уникальный сам по себе. Т.е. нельзя вставить две одинаковые записи. типа 10 | 15 два раза. Но иногда нужно вставить туда весь набор категорий определенной тумбы, в том числе которые уже есть. Т.е. получится что будет вставляться дубль. и тогда вылетает исключение мол такая херь не прокатит запись уже есть. Приходится сначала проверять есть ли запись, и потом уже вставлять.

SiZE
18.12.2017
13:57:42
Коллеги, пришла тут в голову одна схема для хранения галлерей изображений. Хочу прокунсультироваться у тех кто шарит) Допустим есть у меня туева хуча изображений, которые распределены по галереям. У этих изображений есть подписи и другая инфа еще и на разных языках. Каждое изображение я хочу хранить в БД. С примерно таким набором полей: id, path, alt, title, intro, description Но из-за мультиязычности это дело нужно разбить на три таблицы (или больше в зависимости от кол-ва языков). И вот тут меня плющит прожорливость запроса в БД в момент вызова галереи. Дернуть страницу -> join галереи -> join изображения -> join языковой версии контента и так для каждой галереи коих на странице может быть много. Если например у галереи сделать поле tpl куда записывать уже свормированный HTML код галлереи и отдавать ее всю одним полем это норм?
таблицу для каждого языка - так себе практика

Ad.x ??
18.12.2017
13:57:42
вот короче хз мож глушить эту хуйню как-та можна я хз )

SiZE
18.12.2017
13:58:36
А по поводу этого вопроса Если например у галереи сделать поле tpl куда записывать уже свормированный HTML код галлереи и отдавать ее всю одним полем это норм? это называет кеширование и никакого отношения к галерее не имеет http://www.yiiframework.com/doc-2.0/yii-filters-pagecache.html

Screamie
18.12.2017
13:58:52
норм! Только если верстка табличная
Не понял, если честно. Верстку я буду тянуть ту, которая нужна. просто рааставлю в ней поля и звпишу в tpl галереи

Maxim
18.12.2017
14:00:33
карочи в связующей таблице составной праймори ключ category_id | thumb_id. Он уникальный сам по себе. Т.е. нельзя вставить две одинаковые записи. типа 10 | 15 два раза. Но иногда нужно вставить туда весь набор категорий определенной тумбы, в том числе которые уже есть. Т.е. получится что будет вставляться дубль. и тогда вылетает исключение мол такая херь не прокатит запись уже есть. Приходится сначала проверять есть ли запись, и потом уже вставлять.
так тебе нужно оставить валидацию только в php, а в mysql убрать составной внешний ключ, и где нужно - не валидировать Или еще вариант - свой "весь набор категорий определенной тумбы" связывать через другую таблицу. Второй вариант мне больше нравится, потому как принцип единой ответстванности и все такое

Google
Maxim
18.12.2017
14:02:01
зачем через другую, если эта пойдет. связь классическая "многие ко многим"
а тебе обязательно свои тумбы вообще хранить или ты можешь их запросом сформировать и закешировать?

Ad.x ??
18.12.2017
14:04:45
угараешь чтоль ) конечно обязательно. расчет на 60млн тумб

Screamie
18.12.2017
14:05:18
Вообще, если собирать поля с 5 - 6 таблиц по 4 - 5 раз на страницу это сильно плохо? И надо ли это лечить? Или кэш это и есть решение проблемы?

Maxim
18.12.2017
14:07:52
угараешь чтоль ) конечно обязательно. расчет на 60млн тумб
я не знаю что там и почему оно повторяется, но я пересмотрел бы структуру бд. Дополнительные 60млн полей в одной таблице не такая мелочь

Ad.x ??
18.12.2017
14:08:18
ясно. связь "многие ко многим" тебе ни о чем не говорит ))

Maxim
18.12.2017
14:08:41
впервые слышу. ты че-т выдумал

Ad.x ??
18.12.2017
14:09:17
https://en.wikipedia.org/wiki/Many-to-many_(data_model)

Screamie
18.12.2017
14:11:50
Эм, many-to-many это мне? Не понял просто. Так-то в курсе) Я справишию про 5 -6 запросов, которые и используют связь, что бы собрать все поля

Antony
18.12.2017
14:13:03
Если запросы простые - то не накладно.

Maxim
18.12.2017
14:13:19
Вообще, если собирать поля с 5 - 6 таблиц по 4 - 5 раз на страницу это сильно плохо? И надо ли это лечить? Или кэш это и есть решение проблемы?
что значит собирать поля? джойн? Если медленно будет - денормализуй У тебя абстрактный вопрос про таблицы. Html зранить в бд для построения галереи - это плохо

Screamie
18.12.2017
14:13:40
Во, пошел конструктив)

Maxim
18.12.2017
14:14:09
Если запросы простые - то не накладно.
он говорит очень много картинок хранить в бд Хранить картинки в бд - уже должно быть накладно

Screamie
18.12.2017
14:14:10
Короче, я так понял идея с HTML отстой. Делаем по старинке

Не картинки. Путь к ним и мету всякую. Тянем их потом через behavior

Алексей
18.12.2017
14:15:21
А нафиг хранить путь, почему не генерить?

Screamie
18.12.2017
14:15:51
Сорян, не так выразился. Не путь. Имя файла кароч. Генерим путь и тащим мету как раз через behavior

Вопрос просто в другом. Этой меты дофига

Google
Screamie
18.12.2017
14:16:30
Как ее лучше хранить. Я об этом спрашивал

Maxim
18.12.2017
14:18:59
many-to-many наверное же

Screamie
18.12.2017
14:20:31
Вот. Сферический конь в вакууме. Есть одна галерея. В ней 5000 имаг. У каждой имаги 9 - 10 полей с инфой. Плюсом четыре языковые версии этой инфы. Способа лучше чем делать одну общую таблицу и герез foreigh keys четыре языковые таблицы нет?

Сергей
18.12.2017
14:28:24
Посоветуйте CSS инлайнер на PHP. Нужно подобное делать: https://templates.mailchimp.com/resources/inline-css/

Screamie
18.12.2017
14:39:18
nosql
Думаю в эту сторону. Но к nosql пока не готов. надеялся, что есть какое-то другое решение.

SiZE
18.12.2017
14:39:24
С конем надо работать по факту

Нормализации бд и индексов на первых порах достаточно

SiZE
18.12.2017
14:40:25
Ad.x ??
18.12.2017
14:40:29
1 ко многим тут связь

SiZE
18.12.2017
14:40:40
Все думают, что на их проекте завтра int закончится

Ad.x ??
18.12.2017
14:41:05
тем более что он unsigned

да, когданить кончится )

Trofim
18.12.2017
14:41:18
Ad.x ??
18.12.2017
14:41:35
вот проблема 38 года... это да

но до нее еще 20 лет

Screamie
18.12.2017
14:41:41
Знаю. И технологию знаю и реализовывал ее не раз. Просто лично мне это кажется прожорливой тратой ресурсов. Вот и подумал может есть какие-то способы лучше.

Google
Screamie
18.12.2017
14:42:55
Как раз время появилось. Читаю форумы ищу решения, но везде примерно одно и тоже. Либо nosql либо пиши связи и нормализуй

Trofim
18.12.2017
14:43:11
Та при такой избыточности одной ок

Admin
ERROR: S client not available

Ad.x ??
18.12.2017
14:43:28
Это очень спорный ворос
не спорный нифига

Trofim
18.12.2017
14:43:34
Смотри, может ли быть вариант что тебе нужно два языка сразу?

Trofim
18.12.2017
14:44:03
4 таблицы как минимум с одним избыточным полем - название файле

Ad.x ??
18.12.2017
14:44:13
ид сообщения | ид языка | сообщение

Trofim
18.12.2017
14:44:19
А-то и двумя - бо ещё нужно ж хранить айди по которому связка

Ad.x ??
18.12.2017
14:44:22
и не нада распаляться на 100500 таблиц

Trofim
18.12.2017
14:44:30
Лучше 1 таблица

Базарю

Две причины почему описал выше

Михаил
18.12.2017
14:44:45
ид сообщения | ид языка | сообщение
домен еще, иначе заблудишься в id

Screamie
18.12.2017
14:44:53
Базарю
А теперь представь, что тебе нужно довать еще один язык

Google
Screamie
18.12.2017
14:45:01
добавить

И понеслась

Trofim
18.12.2017
14:45:16
Тю, и шо

Добавил колонку / две

Чем трабл?)

?
18.12.2017
14:45:39
а если языков будет не 5 а скажем 10-15

а если больше ?

Ad.x ??
18.12.2017
14:45:58
Trofim
18.12.2017
14:46:02
А если 4 все таки?)))

Screamie
18.12.2017
14:46:18
Колонку добавил? Добавь на legacy проекте колонку. покрашится все

Trofim
18.12.2017
14:46:22
У вас "а если" слишком глобальные

Никита
18.12.2017
14:46:23
языки можно в json держать (у postgresql есть удобный тип данных jsonb)

Trofim
18.12.2017
14:46:28
Если языков 150 тогда да

Если языков 150 тогда да
Тут же момент избыточности, для 4 ок 1 табла

Screamie
18.12.2017
14:46:57
В мускл тоже есть уже
Поддерка плохая у хостеров

?
18.12.2017
14:47:00
заказчики народ типа обезъяна с гранатой сейчас 4 потом блин а теперь мы еще идиш хотим китайский японский да и наврное еще с 10 языков добавить а мы можем это сами сделать ?

Страница 854 из 1721