В моей базе данных SQL есть две таблицы:
Компания:
- ID (автоинкремент)
- имя
- адрес
- ...
Сотрудники:
- ID (автоинкремент)
- company_id
- internal_id
- имя
- 1028 * фамилия *
Проблема в том, что я хотел бы иметь идентификатор сотрудника (internal_id), относящийся к компании , к которой они принадлежат. Я получил эту дилемму, потому что я действительно искал, что было бы самым чистым способом реализовать это.
Один из вариантов - просто выбрать SELECT MAX (internal_id) ОТ сотрудников WHERE company_id = X, но проблема заключается в том, что, если мне удастся удалить последнего сотрудника, следующий будет создан с идентификатором следующий.
Есть идеи или предложения?
PD: Причина, по которой я хочу сделать это, заключается в том, что я не хочу, чтобы пользователь из компании X создавал сотрудника, например ID = 2000, тогда как последний сотрудник, созданный в его компании, был, скажем, 1532. Обычно это происходит в системе, в которой Компании Y и Z также создают сотрудников в одной системе. Я хочу, чтобы этот идентификатор не использовался в качестве постороннего ключа, а имел его для внутреннего использования (даже для документов или отчетов).
PD2: в этом случае сотрудникам никогда не придется менять компанию