Uglik: Зачем новые таблицы плодить. Объединяйте все, что можно обьединить. А уж что нельзя, тогда в отдельную. Скрипт и не должен понимать, вы как программист должны понимать как их разделить.
Uglik: Представьте, что вы делаете два простых сайта. На одном регистрация пользователей по простому, а на втором справочная информация по парикмахерам и визажистам и т.д. Когда будут готовы структуры данных для этих сайтов, то поробуйте обьединить данные. И все получится как надо.
Uglik: А их не нужно тут делить. users это пользователи сайта. Логин/емайл, пароль, никнейм достаточно. И у вас парикмахеры не обязательно будут пользователями сайта.
Uglik: users [usergroup] точно лишнее, т.к. пользователь может входить в 2 группы. И зачем вам хранить фамилию и имя клиента? Для записи на стрижку это не нужно.
Максим Чернятевич: А кто спорит? Да, человек должен обладать указанными вами навыками. И если он целеноправленно по 8 часов в день будет осваивать все тонкости языка (про так называемые книги "за 21 день" я ничего не говорил) то он выйдет на очень хороший уровень. Я указывал уже в комментариях, что просто читать бесполезно.
Юрий: А какие есть варианты? Это веб тут только: в параметрах GET запроса, в теле POST запроса, в хедере запроса, в куках. Или куда еще вы спрятать можете? WebSocket так это другой канал передачи данных. Все это легко копируется.
copal: Обоснуй. Если каждый день выполнять различные задания по Javascript, то за 21 день реально выйти на хороший уровень. А если просто читать книжки по JS то толку не будет и через пару лет.
Юрий: Если несколько токенов, то какой смысл в них, сессии достаточно. И чем вам куки не угодили, даже если они в нескольких вкладках открыты (не в режиме ананомности), то кука будет одна на эти вкладки.
Если делаешь основной информацию по парикмахерам, то и создай таблицу
"Парикмахер" (ID, userid, ФИО, адресс, аватар и т.п.) это будет справочник. А для пользователей сайта "Пользователи" (id, email, контактное имя, password). Этого будет достаточно. Кто будет записываться "Запись" (id, userid, парикмахер id, время, тип стрижки, phone, салон-id, note)
void Func(int a[][10]);
void Func(int *a[10]);
void Func(int **a);
template void Func(int (&a)[rows][cols])