В комментариях вы сказали, что пользователи с правами администратора и техники
не имеют абсолютно никакого отношения друг к другу
Их реальная работа может отличаться, но в Термины вашего приложения - это просто две разные вариации пользователя, поэтому они принадлежат одной и той же таблице (потому что они - один и тот же тип сущности, «пользователь» приложения, и каждая таблица должна представлять сущность). Тот факт, что они являются «администраторами», является просто свойством пользователя, которое отличает их от других типов. Затем вы можете использовать это свойство (и другие, если вам нужно больше тонкости), чтобы определить, какие привилегии они имеют в приложении.
На самом деле пользователи нередко имеют несколько наборов привилегий, поэтому Отношение «многие ко многим» между таблицей «пользователи» и таблицей «привилегии» (конечно, с таблицей отображения между ними) может иметь больше смысла и быть более гибким в долгосрочной перспективе.
PS Чтобы рассмотреть исходную точку, в предложенной вами исходной структуре вам понадобятся только некоторые отношения между строками администратора и технического персонала, если вам необходимо записать, какой администратор создал какие записи. Вы все еще можете сделать то же самое в одной таблице «пользователи», если вам нужно, просто имея отношение «один ко многим» между двумя столбцами в одной таблице. например, у вас будет столбец CreatedBy, который будет необязательным, и будет иметь внешний ключ для столбца идентификатора, чтобы он мог записывать идентификатор пользователя, который добавил текущую запись.