B0rG
Дата: 16.02.2005 19:13:51
Уважаемые,
Для не очень большого проекта (call center application) требуется продумать логику базы данных. Т.к. се есть мой первый большой опыт с ADO.NET в промышленных масштабах надеюсь на вашу помощь и сочувствие :)
Примерная бизнес логика:
1. А звонит по телефону в центр.
2. На А тут же заводится запись в таблице Rescues(RescueID, EditInProgress=1)
3. Тут же создается несколько дочерних записей в таблицах Jobs(JobID, RescueID, EditInProgress=1) и Services(ServiceID, RescueID, EditInProgress=1).
4. Тут А может вполне себе бросить трубку, соответственно сотрудник давит Cancel, записи стираются.
5. Сотрудник давит Submit, записи, созданные в 2,3 обновляются с кошерными данными и EditInProgress=0
Пока что (как обычно за пол дня до релиза) было сделано на соплях через 'INSERT INTO', простейший DataSet.Update на каждую запись и флаг EditInProgress=1/0.
Rescues.RescueID генерится как Identity(1,1) Primary key clustered.
На следующей неделе возможно появится время все это переделать, и есть такая мысль:
1. Создать Dataset c дочерними таблицами Rescues, Jobs, Services
2. Все обновления до нажатия кнопки Submit/Cancel проводить в Dataset
3. После нажатия кнопки вызывать DataSet.Update, Dataset.AcceptChanges.
По этому поводу есть несколько вопроcов:
1. Каким образом будет производится синхронизация первичного ключа RescueID при записи DataSet? Ведь для создания записей в дочерних таблицах Jobs, Services необходимо знать значение текущего RescueID
2. Будет ли она производится автоматически?
2. Т.к. сотрудников порядка 10 - 20 человек, будет ли она производится автоматически если несколько человек будут одновременно давить AddNew, Submit и все такое?
Cheers
Pete