
Runinterface ?
17.07.2017
12:42:29
ну можно еще получить ssh доступ)

Alexander
17.07.2017
13:00:05
Ребят, всем привет
Нужно сделать таблицу tasks в CRM, подскажите, пожалуйста, а то не понимаю
таблица tasks содержит в себе поля id, title, text, add_date, task_date. Как сделать связь между клиентом/продажей/лидом и задачей?
Думал сделать промежуточную таблицу tasks_has_entities (id, task_id, entity, entity_id), где entity - это название сущности (clients, sales, leads), а entity_id - это id строки в таблице entity.
Но вопрос - как правильно построить запрос? Уже пробовал просто написать, но не понимаю. Это же нужно делать циклом, правильно понимаю? Чтобы вытаскивать данные по каждой сущности

Evgeniy
17.07.2017
13:03:11
о недавно на stackoverflow читал его)
хотел даже по отвечать но понял насколько он там затянится

Google

Evgeniy
17.07.2017
13:04:26
ну смотри давай пока отбросим crm
и поговорим чисто за бд
то что ты говоришь это ER диаграмма
и Entity между ними соединяются 3 разными типами связей: 1x1, 1xN, NxM
когда ты говоришь надо связь между клиентом/продащей/лидом и задачей
то все зависит от того как у тебя это хранится
условно с точки зрения проектирования там есть такая фишка как нормальнизация и нормальные формы
поэтому твой подход с tasks_has_entities с точки зрения нормальных форм не правильный
лучше сделать отдельно task_has_orders, task_has_leads и тд
и содержимое таблицы будет task_has_orders: task_id, order_id

Alexander
17.07.2017
13:07:34
И таким образом уже делать объединения?

Evgeniy
17.07.2017
13:07:39
ну и для лидов task_has_leads
это называется связь многие ко многим

Google

Evgeniy
17.07.2017
13:07:59
это с точки зрения теории
такой поверхностной

Alexander
17.07.2017
13:08:10
Т.е. для каждой сущности, которая теоретически может быть привязана к таску, делать отдельную таблицу для связи

Evgeniy
17.07.2017
13:08:12
но чтобы понять тип связи
тебе надо ответить
может ли быть такое что у одно таска несколько ордеров например
а у одного ордера несколько тасков
и во всяких crm как раз практикуется способ что ты описал

Alexander
17.07.2017
13:09:15
у таска несколько ордеров быть не может, а у ордера может быть несколько тасков)

Evgeniy
17.07.2017
13:09:19
но обладает как плюсами так и минусами)
она реализуется добавлением атрибута(колонки) в сущность order (таблицу orders)
в котором будет указан task_id

Alexander
17.07.2017
13:10:59
тогда уж наоборот
у ордера может быть несколько тасков, поэтому в таблицу тасков вставлять атрибут sale_id)

Evgeniy
17.07.2017
13:11:40
а ну да
мой косяк я имелл ввиду это, просто написал бред
ну и может быть такое что таск не связан не с одним из sale ?
если да то колонка nullable если нет, то not null
и так каждую связь отдельно лучше в начале сделать

Google

Evgeniy
17.07.2017
13:13:35
потом подумать будут ли еще новые связи динамически появляться?
и нужно ли это
если нужно то ты придешь к своему варианту с вспомогательной таблицей (дополнительной сущностью) в виде связей
если это нафиг не надо то и не придется делать over enginiring
а это только тебе известно
твой вариант как бы более гибкий
но денормализованный и с дополнительной сущностью
и соответственным усложением надо ли это?
во многих crm так делают засчет этого получают базу
в которой без бутылки не разберешься
зато все гибко
и потом лапшу в backend складывают

Evgeniy
17.07.2017
13:16:16
это имхо, работал с несколькими crm
и потом к вертикальным таблицам приходят
забыл как это правильно называется
https://ruhighload.com/db.vertical.table.jpg


Ксения
17.07.2017
13:18:34
Всем привет! Ищем php разработчика в Ситимобил – онлайн-сервис заказа такси.
Область ответственности – разработка систем, API и web-интерфейсов, используемых компанией для обеспечения работы сервиса по онлайн-заказу такси.
Задачи:
- Разработка API (РНР, Node.JS, MySQL, Redis, Git); поддержка и непрерывное развитие существующих решений, поиск и устранение проблем производительности;
- Проектирование архитектуры информационных систем;
- Участие в сode-review.
Требования:
- Нацеленность на результат;
- Опыт разработки онлайн-проектов, реализующих сложную логику и оперирующих большими наборами данных;
- Опыт разработки средствами PHP с использованием современных фреймворков;
- Опыт разработки асинхронных приложений с использованием Node.js;
- Не энциклопедическая, но практическая инженерная грамотность;
- Опыт промышленной разработки и эксплуатации онлайн-проектов, оказывающих реальные коммерческие услуги;
- Навыки или образование в области системного программирования;
- Инженерный подход к решению технических задач.
Крайне желательно:
- Живой интерес к результатам своего участия в общем деле, сопереживание пользователям;
- Способность конструктивно работать с несовершенными решениями, понимая особенности подхода KISS;
- Опыт поэтапного внедрения микросервисной архитектуры в существующих проектах;
Понимание устройства реляционных БД;
- Опыт успешной работы с использованием Agile;
- Гибкость, ответственность и точность в действиях, не сопровождаемые стрессом для себя и коллег.
Условия:
- Команда профессионалов, у которых действительно есть, чему поучиться;
- Работа в коллективе единомышленников, в котором нет случайных людей;
- Белая заработная плата, вилка до 180к нетто;
- Официальное оформление по ТК;
- Удобный и светлый офис в 10 минутах ходьбы от метро Новые Черемушки;
- Оплачиваемые обеды;
- Возможность посещать профильные конференции за счёт компании.
Жду резюме на ks@city-mobil.ru или пишите в личку
Всем хорошего дня!
#вакансия #офис #Москва #fulltime #php


Evgeniy
17.07.2017
13:18:35
сейчас ксения вакансию покажет)
опередили)

Alexander
17.07.2017
13:18:48
Отошел тут на минуту, а ты уже столько всего написал, сейчас все прочитаю))

Google

Evgeniy
17.07.2017
13:18:54
к

Ксения
17.07.2017
13:19:12

Evgeniy
17.07.2017
13:19:14

Alexander
17.07.2017
13:24:31
Если я правильно понял, то:
Если не нужно будет добавлять новые сущности, то хватит всего этого:
Создание таблиц со связью М-М (task_has_sales, task_has_clients и т.д.)
Если же нужно будет добавлять сущности, не трогая таблицы, то нужно сделать вертикальную таблицу

Evgeniy
17.07.2017
13:25:06
ога
на добавление такой таблицы нужно идти осознанно

Admin
ERROR: S client not available

Evgeniy
17.07.2017
13:25:32
если возникнет необходимость в этом
желательно если она уже есть
потому что зарефакторить бд от первого состояние во второе проще
это связь N к M
а тебе надо 1 к N
для этого в таблице tasks надо просто КОЛОНКУ добавить
назвав sale_id например

(;¬_¬)
17.07.2017
14:27:23

bear
17.07.2017
14:36:00
у меня есть сайт который лежит на бесплатном хостинге, на том сайте есть форма для отправки сообщения на мою почту, что надо написать в файл?

Evgeniy
17.07.2017
14:36:44
напиши что ты охуенный

bear
17.07.2017
14:36:56
что бы сообщение приходило мне на почту

(;¬_¬)
17.07.2017
14:37:00
<?php require_once 'brain.php';

Google

Evgeniy
17.07.2017
14:37:13
нее там не once

(;¬_¬)
17.07.2017
14:37:41
не once может фатал схватить и не понять почему

Konstantin
17.07.2017
14:37:52

(;¬_¬)
17.07.2017
14:38:14
ты же в андроидщики подался, предатель

Evgeniy
17.07.2017
14:38:46
есть и другие способы

Konstantin
17.07.2017
14:39:03

?Томат?
17.07.2017
14:39:15
Привет, чат. Как в этом вашем платном PHPStorm открыть настройки конкретного проекта?

bear
17.07.2017
14:39:22
у меня форма есть а алгоритма нету
для отправки

Evgeniy
17.07.2017
14:39:32

Konstantin
17.07.2017
14:39:34

?Томат?
17.07.2017
14:40:26
А. О. Это и были настройки проекта. Офигеть. Спасибо.

(;¬_¬)
17.07.2017
14:40:46
для отправки
если мозги не включишь - то алгоритм не напишется

Evgeniy
17.07.2017
14:40:49

?
17.07.2017
15:53:45
/link@yetanotherstatsbot

Yet Another Stats
17.07.2017
15:53:46
https://yasb.exileed.com/t/phpgeeks