Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memasukkan Data dengan Cekap ke dalam Jadual Ibu Bapa dan Anak dengan Pemetaan yang Betul?

Bagaimana untuk Memasukkan Data dengan Cekap ke dalam Jadual Ibu Bapa dan Anak dengan Pemetaan yang Betul?

DDD
Lepaskan: 2025-01-14 19:26:45
asal
512 orang telah melayarinya

How to Efficiently Insert Data into Parent and Child Tables with Correct Mapping?

Masukkan data ke dalam jadual ibu bapa-anak

Matlamat contoh ini adalah untuk memasukkan data daripada UDT masuk (@tEmployeeData) ke dalam berbilang jadual, memastikan pemetaan yang betul antara rekod ibu bapa dan anak.

Menyelesaikan isu pemetaan

Untuk mewujudkan pemetaan yang diperlukan, kami menambah lajur employeeId sementara pada UDT dan mengisinya dengan nilai berterusan. Selain itu, kami mencipta pembolehubah jadual (@EmployeeidMap) untuk memetakan ID pekerja sementara dalam UDT dengan ID pekerja sebenar yang dijana dalam jadual sasaran.

Isi jadual utama

Kami menggunakan MERGE untuk mengisi jadual @MainEmployee dengan nilai daripada data yang dimasukkan dan data sumber. Ini membolehkan kami menangkap nilai EmployeeID yang dijana dan mengisi jadual pemetaan pada masa yang sama.

<code class="language-sql">MERGE INTO @MainEmployee USING @tEmployeeData AS sourceData ON 1 = 0
WHEN NOT MATCHED THEN
INSERT (FirstName, LastName)
VALUES (sourceData.FirstName, sourceData.LastName)
OUTPUT sourceData.EmployeeId, inserted.EmployeeID 
INTO @EmployeeidMap (temp_id, id);</code>
Salin selepas log masuk

Peta dan masukkan ke dalam jadual ibu bapa-anak

Kami kemudian menyertai @tEmployeeData dengan @EmployeeidMap untuk mendapatkan ID pekerja sebenar, yang kami gunakan untuk mengisi jadual @ParentEmployeeDepartment. Begitu juga, kami menyambungkan @ParentEmployeeDepartment dengan @tEmployeeData untuk memetakan ID induk kepada data anak dan memasukkan data ke dalam @ChildEmployeeDepartmentTypeA dan @ChildEmployeeDepartmentTypeB.

Sisipan ujian

Untuk mengesahkan bahawa pemetaan berjaya, kami melaksanakan pertanyaan yang menggabungkan data UDT dengan jadual pemetaan dan sasaran.

<code class="language-sql">SELECT FirstName,
     LastName,
     SentData.DepartmentType As [部门类型],
     DepartmentBuilding As 建筑物,
     DepartmentEmployeeLevel As [员工级别],
     DepartmentTypeAMetadata As [A 元数据],
     DepartmentTypeBMetadata As [B 元数据],
     SentData.EmployeeId As 临时ID, EmpMap.id As [员工ID], DeptMap.ParentEmployeeDepartmentID As [部门ID]
FROM @tEmployeeData SentData
INNER JOIN @EmployeeidMap EmpMap ON SentData.EmployeeId = temp_id 
INNER JOIN @ParentEmployeeDepartment DeptMap ON EmpMap.id = DeptMap.EmployeeID</code>
Salin selepas log masuk

Pendekatan ini memastikan bahawa data anak dipetakan dengan betul ke rekod induk masing-masing, sambil mengoptimumkan prestasi dengan mengelakkan operasi baris demi baris yang tidak perlu.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Data dengan Cekap ke dalam Jadual Ibu Bapa dan Anak dengan Pemetaan yang Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan