@Dano, en iyi şekilde tam bir cevapta ele alınan bazı sorunları haklı olarak ortaya çıkarır.
@Celenius tarafından daha önce not edilen bir zorluk , B ve A (her iki yönde) arasındaki birleşimin tüm alanları çoğaltmasıdır; bunu düzeltmek zahmetli olabilir. Ben yorumlarda bariz kolay yolu (bir e-tabloya ihracat) veri bütünlüğü soruları gündeme getiriyor önerdi. Zaten Celenius'un önerisiyle ele alınan bir başka zorluk , hiçbir özellik kombinasyonu hem A hem de B için bir anahtar olarak hizmet edemediğinde bu sorunu çözmekle ilgilidir, çünkü bu bir veritabanına katılmayı engeller. Mekansal birleşme bu problemin üstesinden gelir.
O halde iyi bir çözüm nedir? Bir yaklaşım, istenen verileri içeren B'nin karşılık gelen kayıtlarını tanımlamak için A'yı kullanır. Çokgenlerin konfigürasyonları hakkındaki varsayımlara bağlı olarak - örtüşüp örtüşmemeleri, bazılarının başkalarını içerip içermemeleri vb. - bu çeşitli şekillerde yapılabilir: diğer katmandaki nesneleri seçmek için bir katman kullanmak veya birleştirmeler. Buradaki nokta , bu aşamada yapmak istediğimiz tek şey B'nin A'ya karşılık gelen alt kümesini seçmektir.
O seçimi elde olması, seçim dışa aktarmak ve A. yerini izin Yapıldı .
Bu çözüm , B'deki tüm alanların A'daki karşılıklarını değiştirmeyi amaçladığını varsayarsa Değilse , B'ye (kaynak) A'ya (hedef) 1-1 birleştirmesi gerçekten gereklidir . Tanımlayıcılara dayalı birleştirme en iyisidir, ancak çokgen kimliğine (Celenius) birleştirme yapmak kimlikleri yoksa ve A ve B'deki karşılık gelen çokgen şekillerinin biraz farklı olma şansı yoksa iyi çalışır . (Bu ince bir noktadır ve sinsi hataların olası nedenidir, çünkü B'de A'ya karşılık gelmeyen çokgenlerde yapılan daha önceki düzenlemeler, GIS "yapışıyorsa" veya "topolojiyi koruyorsa", B'deki diğer çokgenleri hala görünmez şekilde değiştirebilir. veya yerel düzenlemeler sırasında otomatik olarak global değişiklikler yapabilir.)
Bu noktada, her alanın iki kopyası vardır: [Foo] A ve B için ortak bir alansa, birleşim A. [Foo] ve B. [Foo] içerir. Bir alan hesaplaması kullanarak B. [Foo] 'yu A. [Foo] içine kopyalayın. Gerekli tüm alanlar için tekrarlayın. Bu yapıldıktan sonra birleştirmeyi kaldırın.
Bu prosedür, birçok alan söz konusu olduğunda biraz zahmetli olsa da , özellikleri
- Komut dosyası yazmak kolay ve hızlıdır.
- Komut dosyası yazıldığında , veriler üzerinde yapılan işlemleri belgeleyen bir denetim izi bırakılır . Bu, veri bütünlüğünü korumak için çok önemlidir.
- Birleştirmeden sonra yanlış alanın korunması (böylece o alan için yeni veriler yerine eski verilerin tutulması) veya önemli bir alanın silinmesi gibi bazı toptan satış hatalarına karşı savunur.
- Veri yönetimini ve veri kurallarını uygulama gibi hataları önlemek ve tanımlamak ve veritabanındaki tüm tablolar ve katmanlar arasında tutarlılığı sağlamak için çalışan veritabanı yönetim sistemi tarafından sunulan yerleşik savunmalardan yararlanır.
Bu öneriye dahil olan yol gösterici ilkelerden bazıları
- Bu görev için tasarlanmamış veya uygun olmayan yazılımlar kullanmak yerine verileri işlemek için bir veritabanı yönetim sisteminizi kullanın.
- İşlemler kesinlikle gerektirmediğinde veritabanı yapılarını (alan silme veya ekleme gibi) değiştirmekten kaçının.
- Çalışmayı basitleştirmek, belgelemek ve işlemleri tekrarlanabilir hale getirmek için yazılımın otomasyon yeteneklerini kullanın.
Çoğu durumda aynı sonuca ulaşmanın daha hızlı ve daha kolay yollarının olduğu itiraz edilebilir . Evet, olabilir ve etkili olabilirler ve genellikle dikkatli bir şekilde yapıldıklarında çalışırlar. Ancak, verileri riske atan çözümlerin genel amaçlı cevaplar olarak önerilmesi ve savunulması zordur. En iyi şekilde, veri bozulmasının hızla belirginleşmesi ve bu tür hataların sonuçlarının önemsiz olduğu küçük veri kümeleri olan tek seferlik durumlarda kullanılır.