Одна таблица, автоинкремент для каждого пользователя свой?
Лучше сразу распишу вопрос на примере:
1. Нужна таблица с заказами (она общая для всех пользователей системы)
id int(11) auto_increment - автоинкремент для всех заказов
id_user_creator int(11) - ид юзера, который создал заказ (один и тот же пользователь может быть и user_creator и user_for)
id_user_for int(11) - ид юзера для которого этот заказ (один и тот же пользователь может быть и user_creator и user_for)
2. А дальше вот такая логика, у каждого пользователя две вкладки (входящие и исходящие), в зависимости от того сам он создал заказ или для него кто-то создал
3. Там он видит нумерацию заказов не общую по полю (id), хотя она тоже видна, но чисто для общения между двумя пользователями.
4. А нужна еще одна внутренняя нумерация, чтобы внутри компании не оперировать общими номерами заказов (они могут быть очень длинными и у них обязательно будет скачок в нумерации: 12, 345, 6578), а работать со своими внутренними номерами (1, 2, 3)
и вот тут затык, самое простое решение это под каждого юзера завести таблицу заказов куда записывать при создании общего заказа еще и сюда. Т.е. 3 таблицы: с общими заказами, и при добавлении каждого заказа вносится по одной записи в таблицы каждого участника чтобы дать им их внутренние номера
а можно это решить в рамках одной таблицы или я фантазер?
Ну да как вариант, только как отследить чтобы нечаянно две заявки не получили одинаковый номер. Если только этому полю поставить UNIQUE тогда ругаться хоть будет если что и можно будет повторить попытку узнать следующий номер и внести изменение
1. Поле id - общий номер заказа в системе, его каждый участник сможет называть чтобы моги общаться заказчик и исполнитель
2. Поля customer_internal_id и supplier_internal_id - внутренние номера заказов внутри каждого проекта customer_project_id, supplier_project_id чтобы внутри проекта сотрудники могли общаться по своим внутренним номерам (короткие, нумерация по порядку), а не по общим (т.к. они будут длинные и будут скакать)
3. Уникальные составные поля не дадут добавить запись с одинаковым внутренним номером для одного проекта
ну и осталось сделать таблицу для всех проектов где хранить номер проекта и последний номер заказа, чтобы к нему прибавлять единицу и обновлять номера в общем заказе