У меня есть две таблицы в моей базе данных SQL:Компания против Сотрудника ID дилеммой
Компания:
- ID (автоинкремент)
- имя
- адрес
- ...
сотрудников:
- ID (автоинкремент)
- company_id
- internal_id
- имя
- Lastname
Проблема заключается в том, что я хотел бы иметь идентификатор сотрудника (internal_id), который по отношению к компании они принадлежат. Я получил эту дилемму, так как я действительно искал, что было бы самым чистым способом ее реализации.
Один из вариантов заключается в том, чтобы просто создать своего рода SELECT MAX (internal_id) FROM сотрудников WHERE company_id = X, но проблема в том, что если мне удастся удалить последнего сотрудника, следующий будет создан с идентификатором следующий.
Любые идеи или предложения?
PD: Причина, по которой я хочу сделать это, заключается в том, что я не хочу, чтобы пользователь из компании X создал сотрудника, например ID = 2000, в то время как последний сотрудник, созданный в его компании, был, скажем, 1532 это обычно происходит в системе, в которой компании Y и Z также создают сотрудников в одной и той же системе. Я хочу, чтобы этот ID не использовался как foreign_key, но для его использования для внутренних (даже документов или отчетов).
PD2: В этом случае сотрудники никогда не придется менять компании
Нужно переписать или уточнить ваш вопрос, в настоящий момент это не имеет никакого смысла. –
@chad: Я думаю, что он хочет создать 2 auto_increment в таблице employee - id и internal_id -, где internal_id имеет сферу деятельности компании. так: компания1, компания2; сотрудник1 в компании1 id: 1, internal_id 1; employee2 at company1 id: 2, internal_id 2; employee3 at company2 id: 3, internal_id 1; сотрудник4 в компании2 id: 4, internal_id 2. беспорядок, но нет строк в комментариях !? – stefs
Так что же такое земное различие, если есть пробел?Всегда будут возникать пробелы из-за ухода людей, отката транзакций и т. Д. – HLGEM