• Как в запросе получить корректную сумму значений поля при ссылающей записи на эту ячейку?

    @groulls Автор вопроса
    Slava Rozhnev, Ну лучше тогда не plan, а fact - факт записи, что ячейка занята, т.е у нас в close будет запись ссылающая на id сущности access и статус (bool) с помощью него будет понимать свободная она или нет.
    Access - сколько сейчас доступно т.е разница между limit и fact.
  • Как в запросе получить корректную сумму значений поля при ссылающей записи на эту ячейку?

    @groulls Автор вопроса
    Slava Rozhnev, Накинул без подробностей, что бы связь была понятна.
    60cf693026a6c047790149.png

    А по поводу тестовых данных, не очень понимаю как показать, опишу:
    Создаем Schedule:
    {
    id:1,
    name : TEST,
    attribute : [
    {
    id:1,
    name: Ivan,
    id_schedule: 1
    },
    {
    id:2,
     name: Semen,
    id_schedule: 1
    }
    ]
    }


    Далее для атрибутов генерируются ячейки в ACCESS для каждого атрибута:
    {
     id: 1,
     limit: 1,
    id_attr : 1
    },
    {
     id: 2,
     limit: 3,
    id_attr : 1
    }
    {
    id:3,
    limit:2,
    id_attr : 2
    }
    {
    id:4,
    limit:4,
    id_attr : 2
    }


    Далее мы можем эту ячейку занять добавив запись в CLOSE( сколько угодна раз по сути )
    {
    id:1,
    status: false,
    id_access: 1
    }
    {
    id:2,
    status: false,
    id_access: 1
    }
    {
    id:3,
    status: false,
    id_access: 3
    }


    Ну вот и нужно вывести 2 записи для каждого аттрибута:
    nameS | nameA | LIMIT | PLAN | ACCESS
    TEST Ivan 4 2 2
    TEST Semen 6 1 5

    Сейчас проблема в том, что если одна запись из сущности Close ссылается на Access все норм, а если 2 ссылки на одну ячейку, то SUM(Limit) уже считается не правильно.
  • Прокинуть Props с использование TS?

    @groulls Автор вопроса
    Понял, а вот если допустим объявить в Child компоненте useState как Объект с какими то свойствами, ну допусти useState({name:'',age:0}), внутри этого компонента их устанавливать и есть интерфейс, который инициализирует эти же свойства и устанавливает props как описано выше во втором варианте и есть необходимость передать это состояние вверх родителю и инициализировать этими значениями его state, что бы потом куда ни то отправить в БД например т.е я так думаю надо в child еще метод создать которые в качестве параметра будет отправлять этот state или есть более элегатное решение? И в обратную сторону в Parent вынуть из БД данные и инициализировать этим значениями уже имеющийся state в Child.
    interface Props{
     name: string;
      age: number;
     setNewData:(data:any)=>void;
    }
    interface ChildProps {
      Child: Props;
    }
    export const Child: React.FC<ChildProps> = (props) => {
      const [person, setPerson] = useState({
        name: "",
       age: 0,
        });
    props.Child.setNewData(person);
    //методы setPerson для установки person
      const onChangeName = (e: React.ChangeEvent<HTMLInputElement>): void => {
        setPerson({ ...person, name: e.currentTarget.value });
      };


    export const Auth: React.FC = () => {
    const [person, setPerson] = useState({});
    const setNewData = (data:any) => {
        setPerson({ ...person, data });
      };
    return(
                <Child Child = {тут по идеи должны же быть все поля из State child + метод setNewData }/>
               т.е я думаю можно, наверное, общий интерфейс создать 
    т.к будет не один компонент в родители рендериться и набор свойств у них будет разный 
    или для каждого компонента свой state с набором полей делать 
    и устанавливать из выгруженного с БД общего стэйта.
    
    {/* 
    export const Auth: React.FC = () => {
      const [person, setPerson] = useState({
        name: "",
        age: "",
      });
    
      const [person2, setPerson2] = useState({});
    
      const onsubmit = () => {
        save([]);
      };
    
      const setNewData = (data:any) => {
        setPerson2({ ...person2, data });
      };
      return (
        <div>
          <Child Child={person, setNewData} />
    
          <button onClick={onsubmit}>Cохранить</button>
        </div>
      );
    };*/}
    
    )
    }
  • Прокинуть Props с использование TS?

    @groulls Автор вопроса
    Дмитрий Беляев, Понял, а вот если допустим объявить в Child компоненте useState как Объект с какими то свойствами, ну допусти useState({name:'',age:0}), внутри этого компонента их устанавливать и есть интерфейс, который инициализирует эти же свойства и устанавливает props как описано выше во втором варианте и есть необходимость передать это состояние вверх родителю и инициализировать этими значениями его state, что бы потом куда ни то отправить в БД например т.е я так думаю надо в child еще метод создать которые в качестве параметра будет отправлять этот state или есть более элегатное решение? И в обратную сторону в Parent вынуть из БД данные и инициализировать этим значениями уже имеющийся state в Child.
    interface Props{
     name: string;
      age: number;
     setNewData:(data:any)=>void;
    }
    interface ChildProps {
      Child: Props;
    }
    export const Child: React.FC<ChildProps> = (props) => {
      const [person, setPerson] = useState({
        name: "",
       age: 0,
        });
    props.Child.setNewData(person);
    //методы setPerson для установки person
      const onChangeName = (e: React.ChangeEvent<HTMLInputElement>): void => {
        setPerson({ ...person, name: e.currentTarget.value });
      };


    export const Auth: React.FC = () => {
    const [person, setPerson] = useState({});
    const setNewData = (data:any) => {
        setPerson({ ...person, data });
      };
    return(
                <Child Child = {тут по идеи должны же быть все поля из State child + метод setNewData }/>
               т.е я думаю можно, наверное, общий интерфейс создать 
    т.к будет не один компонент в родители рендериться и набор свойств у них будет разный 
    или для каждого компонента свой state с набором полей делать 
    и устанавливать из выгруженного с БД общего стэйта.
    
    {/* 
    export const Auth: React.FC = () => {
      const [person, setPerson] = useState({
        name: "",
        age: "",
      });
    
      const [person2, setPerson2] = useState({});
    
      const onsubmit = () => {
        save([]);
      };
    
      const setNewData = (data:any) => {
        setPerson2({ ...person2, data });
      };
      return (
        <div>
          <Child Child={person, setNewData} />
    
          <button onClick={onsubmit}>Cохранить</button>
        </div>
      );
    };*/}
    
    )
    }
  • Прокинуть Props с использование TS?

    @groulls Автор вопроса
    Да, пропустил, ну во втором варианте их и не будет. Я так понимаю имена функций в дочернем и родительском должны совпадать?