Предположим, у нас есть родительский процесс, A
. A
получает входные данные username
и password
и ищет их в базе данных AllUsers
, чтобы убедиться в правильности комбинации username/password
. A
затем запускает новый дочерний процесс B
и передает его username/password
. B
требуется дополнительная информация из базы данных, например, age
и nickname
.
пользователя.
Если A
разрешен только доступ к базе данных:
A
получает всю информацию от
базы данных и передает все это B
через
строки командной строки при создании
новый B
. Даже если A
не
заботиться о age
и nickname
. B
будет анализировать строки, чтобы захватить поля.
A
только проходит
username/password
до B
, а A
имеет WCF
услуги, которые позволяют B
вызвать
услуги, что делает A
доступ к
базы данных и вернуть информацию в B
.
Если A
и B
оба имеют доступ к базе данных:
A
только руки B
username/password
и позволяет B
получить доступ к базе данных, чтобы он мог получить
age/nickname
сама.
Если у нас есть несколько баз данных:
A
имеет доступ только к AllUsers
база данных. Но у нас также есть база данных
для каждого пользователя. Итак, 10000 пользователей =
10000 баз данных. B
доступ только
одна пользовательская база данных для одного
пользователь заботится о нем.
Имейте в виду, что будет только один A
, но могут быть сотни или тысячи B
процессов. Я хочу, чтобы нагрузка была как можно более равномерной, т. Е. Я не хочу, чтобы A
являлось узким местом, если тысячи B
должны с ним разговаривать. Но я также обеспокоен тем, что два процесса могут обращаться к одной и той же базе данных одновременно, кажется, что это может вызвать медленный доступ или повреждение данных.
Это мои идеи о том, как это сделать. Какой из них лучше? Или есть лучший подход?