- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Начал было делать сайт на своём инструменте, всё хорошо, но при работе с базой данных нужно в классах узлов прописывать SQL запросы. Раньше думал сделаю пока так, а потом продумаю и ORM. Но настроив узел для категорий с автосохранением изменений решил, что это замечательный подход, который надо применить в ORM. Не откладывая это дело в долгий ящик решил всё же сначала разработать ORM для своего фреймворка, далее продолжить настройку сайта проекта и тд.
Итак, как у меня сейчас работает ORM.
Есть класс данных(Data), через него задаются параметры отбора и загрузка данных: $Data->Where('otdel=2')->Limit(10)->Load('user');
Далее получаем сущность данных $users=$Data->user; Переменная $users становится объектом у которого есть поля, которые можно менять, удалять, добавлять. Потом система в зависимости какие были изменения делает запрос в базу и там производится удаление, обновление и вставка данных. Всё прекрасно.
Теперь мне надо настроить работу с связями таблиц. При получении данных сущности формируется массив в котором:
Хочу посоветоваться с форумчанами как лучше и удобнее сделать. Можно подгружать в начале просто значения id строк других таблиц, потом при необходимости делать выборку, можно сразу, а можно сделать по желанию и так и так. Так же варианты связей один к одному, один к многим и многие к многим. Пока смутно представляю как это сделаю, надеюсь натолкнёте на интересные мысли.
Пока смутно представляю как это сделаю, надеюсь натолкнёте на интересные мысли.
Осмелюсь предположить, что у форумчан ещё более смутное представление. Лично я вообще не понял, что Вы хотите сделать.
Осмелюсь предположить, что у форумчан ещё более смутное представление. Лично я вообще не понял, что Вы хотите сделать.
Как бы да, вопрос не такой простой. Вот сижу и думаю...
К примеру:
table1
table2
Первая таблица table1 имеет поле _table2 которое указывает на вторую таблицу table2, связь 1 к 1. Если сделаем запрос c JOIN, то получим сущность с следующими данными
в PHP коде это будет
Соответственно можем менять значения $val->pole, $val->valA, $val->valB изменения будут так же произведены и в базе данных
Так же и с другими видами связей. Вот и кумекаю, будет ли так удобно и как другие связи сделать, так же как регламентировать по ON DELETE, ON UPDATE и тд.
Не надоело тебе изобретать то, что давно есть? Как пример:
Не надоело тебе изобретать то, что давно есть? Как пример:
Говно пример. Я насмотрелся уже на разные ORMки всё сделано через задний проход..
Я просто хочу основные моменты заложить для связей таблиц. Тебе не понять.. Извини, но ты привык делать как другие делают, своей головой соображать не умеешь. Мне же нужен свежий взгляд тех кто понимает, что такое связи в БД и как им бы хотелось прописывать это в коде, и как это можно реализовать более продуманно относительно структуры БД и запросов к ней. А в существующих либах куча тупого кода и способы использования ужасны, да работает, но так коряво что жуть..
Мне же нужен свежий взгляд тех кто понимает, что такое связи в БД
Ты уже показал, что об джойнах не имеешь понятия, не сделав мой простой пример. Могу поспорить, что ты не сделаешь лучше чем в симфони. Ты просто счас поставил задачу на примитивном примере и тебе кажется, что ты можешь упростить, по факту когда все раздуется до реально сложных запросов - сядешь в лужу.
Ну и опять же о голословности. Я тебе пример пример ормки из симфони - ты в состоянии это переписать понятнее? Челлендж? Я даже не буду арбитром, мне лень разбираться в пхп коде, форумчане рассудят.
По факту ты бы мог прикрутить эту ОРМ и пойти дальше к к готовому продукту, а ты опять придумываешь квадратные колеса.
Ты уже показал, что об джойнах не имеешь понятия, не сделав мой простой пример. Могу поспорить, что ты не сделаешь лучше чем в симфони. Ты просто счас поставил задачу на примитивном примере и тебе кажется, что ты можешь упростить, по факту когда все раздуется до реально сложных запросов - сядешь в лужу.
Ну и опять же о голословности. Я тебе пример пример ормки из симфони - ты в состоянии это переписать понятнее? Челлендж? Я даже не буду арбитром, мне лень разбираться в пхп коде, форумчане рассудят.
По факту ты бы мог прикрутить эту ОРМ и пойти дальше к к готовому продукту, а ты опять придумываешь квадратные колеса.
Завязывай уже меня смешить 😀
зачем самому себе усложнять жизнь?
$rows = DB::query( "SELECT id, date, comment FROM table WHERE id=? AND date>?", [$id, $date] );
зачем самому себе усложнять жизнь?
Я не себе усложняю, а другим облегчаю.
К примеру: посмотрите видео как в RedBean можно работать с БД не написав ни одного SQL запроса https://www.youtube.com/watch?v=iU8zlbkpwyo
Для кодеров которые не знают SQL это замечательная штука. Но для нормальных прогеров это куча ~500кб с каждой обработки формирования страницы и ненужных\лишних запросов и тд. Проще как вы прописать нужный запрос и всё.
НО, сама задумка ORM не плохая(людям не надо изучать SQL), вот только реализация как обычно.. хотели как лучше, а получилось как всегда.. Поэтому я разработал свой фреймворк, и для облегчения работы с БД я написал свою ORM, которая быстрая, всего 3 класса, в которых ~ по 100-200 строк кода, в отличии от того же редбин, в котором 17к строк. Человеку не нужно будет ничего изобретать, прикручивать редбин, доктрин или ещё что то. Легко получать, изменять, удалять, добавлять данные и просто с ними работать не составляя никаких SQL запросов, с любой базой данных или удалённым xml, json, yaml, др. файлом и тд.
Легко получать, изменять, удалять, добавлять данные и просто с ними работать не составляя никаких SQL запросов
Как обычно - ты перепутал форум и разглагольствуешь для домохозяек, забывая, что тут так есть программисты/кодеры. Приведи пример своего класса, покажи что именно он упрощает и так уж совсем ли не надо знать SQL?
Вот к примеру тебе простенький запрос из реальной жизни - покажи как он будет выглядеть в твоей ОРМке?
покажи как он будет выглядеть в твоей ОРМке
Включи мозг. Запрос к базе ничем не будет отличатся, также будут джониться таблицы.
Кроме того запросы могут быть и через таблицу и через ту таблицу которая через и тд. намного сложнее чем простое добавление(JOIN LEFT|RIGHT|FULL). И все запросы будет составлять ORMка в зависимости от связей таблиц, а в коде зная связи можно получать данные например зная только id из одной таблицы которая имеет связь с второй, вторая с третьей и четвёртой из которых получить доступ к пятой по определённому отбору. Тебе с твоим ущербным мозгом никогда такой запрос не составить, а моя ORMка легко это сделает.