У меня есть база данных с такой структурой, каждый раз как приходит пациент, допустим тот же самый, каждый раз приходится о нем заполнять информацию, что не очень удобно, проще сделать "карточку" пациента и добавлять в нее приемы
Я переделал вот в такую структуру
В таблице PatientsImages для хранения изображений используется filegroup-а. Вопрос заключается в следующем, как мне перенести данные,из одной структуры в другую,учитывая что в первой таблице "Patients",записи повторяются,пример ниже,а во второй структуре эти повторения нужно перенести в "приемы", я не имею большого опыта в работе с БД, не могли бы пожалуйста направить?
Id | FullName | DateOfBirth | DateOfReceipt | Menstrual
5180 | Абдиева | 13.05.1976 | 2014-05-13 | NULL
5642 | Абдиева | 13.05.1976 | 2016-03-04 | NULL
5372 | Абдиева | 13.05.1976 | 2015-03-05 | NULL
Т.к. первоначальная таблица Patients по сути представляет приемы, я бы начал с переименования ее в "Приемы" и добавил бы nullable поле PatientID, указывающее на таблицу Patients. Тогда в PatientImages ничего менять не надо - она будет указывать на новую таблицу Приемы, что нам и нужно.
На этом можно было бы и остановиться и добавить в код логику: если FullName / DateOfBirth есть в таблице "Приемы", брать оттуда, иначе - из Пациентов. Но можно пойти дальше и нормализовать данные.
Т.к. в исходной схеме пациенты никак не идентифицировались, можно идентифицировать их по фамилии и дате рождения:
INSERT INTO Patients (PatientID, FullName, DateOfBirth)
SELECT ROW_NUMBER() OVER(ORDER BY FullName, DateOfBirth) as PatientID, FullName, DateOfBirth from Receptions
GROUP BY FullName, DateOfBirth
Затем нужно заполнить поле PatientID:
UPDATE Receptions SET Receptions.PatientID=Patients.PatientID
FROM Receptions INNER JOIN Patients WHERE Receptions.PatientID=Patients.PatientID
Затем убрать флаг NULLABLE с поля Receptions.PatientID.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости