Я проектирую внутреннюю базу данных, которая будет обрабатывать регистрацию и вход в систему.Мне нужно иметь возможность работать с различными типами учетных записей и аутентификаций.
Представьте, что пользователь регистрирует свою компанию онлайн (на моем веб-сайте), данные о компании попадают в таблицу моей компании, а их данные - в мою таблицу пользователей..
Затем они получают «тип учетной записи» в качестве администратора компании (таблица типов учетных записей).
Этот пользователь (администратор компании) теперь может войти в свою учетную запись компании в режиме онлайн и зарегистрировать несколько пользователей (в их компании).
Проблемы, с которыми я сталкиваюсь, приведены ниже, и, надеюсь, мой дизайн их решает, но я не уверен, что я на правильном пути.
Каждыйпользователь может иметь либо пароль, либо смарт-карту для входа в систему. У меня есть связь для таблиц паролей и смарт-карт, но это означает, что будет много нулевых объектов.У пользователя будет пароль или смарт-карта.
Просто чтобы уточнить мои потребности.Когда пользователь регистрирует компанию, он становится администратором компании, но он также может настраивать других администраторов и / или пользователей, поэтому все они у меня в разных таблицах.
Iдобавили дополнительные таблицы, поскольку каждый пользователь должен иметь одну или несколько проверенных форм идентификатора, наряду с предоставлением одного или нескольких кодов доступа, которые обеспечат диапазон уровней доступа (на основе физических и компьютерных ресурсов)
Я в основном обеспокоен тем, что у меня правильный тип нормализации базы данных И дизайн отношений.
Наконец, в таблице смарт-карт будет несколько записей смарт-карт, которые я создаю, и янеобходимо иметь возможность назначить одну или несколько компаний, а затем администратор компании может назначить одну или несколько из них пользователю, принадлежащему этой компании.
- В порядке ли мои отношения для этого?
- А как насчет нулевых значений, пока мне не назначены смарт-карты, это нормально?
Любая помощь и руководство будутat.
И просто для подтверждения, это будет внутренняя база данных SQL на моем сервере, доступ к которой осуществляется через веб-приложение онлайн И настольные приложения конечного пользователя, написанные на C #