nokta özelliklerine benzersiz kimlik atayın


10

MassGIS parsel standardı (http://www.mass.gov/mgis/ParstndrdVer1_5_1.pdf), özellikler için benzersiz bir kimlik (LOC_ID) oluşturmak için x ve y koordinatlarının tam sayı bölümünün bir birleşimini kullanır. Aynı şeyi bir nokta özellik sınıfı için yapmayı düşünüyorum. Tutarlı metodolojiyi seviyorum, ama belki bir şeye bakmıyorum. Puan özellikleri için benzersiz kimlikler oluşturmak için standart veya en iyi uygulama var mı?


Takip eden soru: DBMS'de (SQL Server) veya GIS yazılımında (ArcGIS) benzersiz kimlik oluşturmak ve korumak en iyisidir?
cwb

1
Projeniz hakkında daha fazla bilgi verebilir misiniz? Özellikler neyi temsil eder? Zaten doğal bir benzersiz kimlikleri var mı? Bu sayıyı ne için kullanmayı planlıyorsunuz (örn. Parça özelliği, diğer veri kaynaklarına bağlantı, vb.) Tüm bunlar kimlik oluşturma işlemlerini en iyi şekilde ele alır.
Chris M

Nokta özellikleri yakalama havzalarını temsil eder. Doğal benzersiz bir kimlik yoktur. DPW personeli, havza temizleme programı hakkında bir bilgi tablosuna bağlantı vermek istiyor. Daha fazla ayrıntım yok, ancak alandaki personelin temizlik gerçekleştiğinde, yakalama havzasının durumu,
vb.Ile ilgili notlar yapacağını düşünün

havzalar için ottobasin numaranız var. Tahminimce bu benzersiz. metodolojiyi kavramak için ottobacia (ottobasins) arayın. Yalnızca Portekizce sonuçlar buldum.
George Silva

Yanıtlar:


18

Bu kimliği başka bir tabloya göre yabancı anahtar gibi bir şey için kullanırsanız, herhangi bir nedenden ötürü bir noktayı taşımak zorunda kalırsanız tüm veritabanınız büyük sorun yaşayacaktır. Muhtemelen, xy koordinatlarını artık tanımlamasa bile kimliği korumanız gerekecektir.

Benzersiz bir anahtar, çoğu zaman veriler hakkında hiçbir şey söylemeyen bir şeye sahip olmak için en iyisidir, çünkü çoğu veri değişebilir.

/ Nicklas


7
+1 Asla hiçbir zaman bir şey ifade eden kimlikleri kullanmayın ya da iş verilerini kullanmayın. İşimdeki biri yanmıştı çünkü ID'de yol isimlerini kullandılar ve yol adının değiştirilmesi gerekiyordu, şimdi kimlik yanlış.
Nathan W

4

Nicklas cevap ve benim yorum ekleyerek.

En çok kullanılan sözleşmeyi söyleyebilirim ve en çok önerilen, yalnızca otomatik olarak artan bir kimlik kullanmaktır, örneğin 1'den başlayın ve devam edin. Mantık yok ve basit.

Dağıtılmış bir sisteminiz varsa veya sayıları otomatik olarak artırmayı sevmiyorsanız, bir GUID kullanabilirsiniz. Çoğu veritabanı sizin için bu tür bir kimlik oluşturmayı ele alacaktır. Bununla birlikte, bir kullanıcının manuel olarak girmesi, arama vb.İçin bir acıdır, bu yüzden bunu aklınızda bulundurun.

Diğer seçenek verilerin bir tür karma kullanmaktır ama bunu tavsiye etmem. Bu, sizin için bunu yapmak için bir algoritma yazmanız gerektiği anlamına gelir, her zaman benzersizliği sağlayamazsınız, aynı zamanda arama için girmek için bir acı olma eğilimindedirler.

Bunlar sadece benim düşüncelerim, ama kişisel deneyimlerden, güven bana, kimliklerde asla iş verilerini kullanmayın.


4

Takip eden soru: DBMS'de (SQL Server) veya GIS yazılımında (ArcGIS) benzersiz kimlik oluşturmak ve korumak en iyisidir?

DBMS içinde benzersiz olup olmadığını kontrol etmenizi şiddetle tavsiye ederim. Bu, DBMS'lerin güçlü yönlerinden biridir. Ayrıca, benzersiz kısıtlamaların farkında olmayacak farklı GIS yazılımlarıyla verilerinize erişmenizi sağlar.


3

Kimlik şemamız benim tarafımdan seçilmedi, ancak şu şekildedir: varlık sınıfı ve 6 basamaklı bir sıra numarası olan 2,3,4 karakter kodu (sizin için uygun olan basamak sayısını seçersiniz). Saklı yordam bu kimlikleri oluşturur ve aynı SQL Server veritabanındaki birkaç coğrafi veritabanı olmayan tabloya dayanır.

Ayrı, sıralı bir otomatik artış kimliği tutuyorum. Ayrıca 13 karakterli bir geohash alanı tutuyorum (nokta özellikleri için), ancak bunu asla bir anahtar olarak kullanmam. Özellik her taşındığında alan otomatik olarak doldurulur (özel bir editör uzantısıyla).

GIS verileriniz herhangi bir varlık yönetimi sistemiyle kullanılacaksa, kimliklerinizin coğrafi veritabanınızda benzersiz olmasını (ve belki de kuruluşunuzdaki tüm coğrafi veritabanlarında benzersiz olmasını) istersiniz. Bu, gelecekte coğrafi veri tabanı yeniden düzenleme işlemini biraz daha kolay hale getirecektir.


1

Perrsonally Geçmişte benzer değerler oluşturmak için CRC hesaplamaları kullandım. Oluşturması çok zor değil ve kütüphaneler / algoritmalar çevrimiçi olarak mevcut.

Avantajı, noktalardan daha büyük özellikler yapabilmenizdir, oysa birleştirme gerçekten nokta özellikleri olmak zorunda kalacaktır (gerçekten büyük bir anahtar istemiyorsanız).

Ve son kullanıcının zaten bu kimlikle arama yapması pek olası değil, bu yüzden bunu bir sorun olarak görmüyorum.

Bunu söyledikten sonra, böyle bir kimlik atamanın birçok açık faydasını görmüyorum. Değişim algılama yöntemini kullanabilirim (çünkü iki CRC değerini iki geometri kümesinden karşılaştırmak çok daha verimli değil), ancak o zaman bile - neden birincil kimlik olarak kullanıyorsunuz?


1

"GUID'ler elbette VB Script kullanılarak oluşturulabilir. Ancak VB Script'in ESRI tarafından kademeli olarak tasfiye edilmesi göz önüne alındığında, dünyanın dokuzuncu harikası Python'u kullanarak ArcMap'ta GUID oluşturma yapacağız. Python, Tanrı'nın CBS bilgisayar korsanlarını davet etmek için bir armağandır. Benim tavsiyem: Öğren! Bunu yaşa!

http://eaglemap.com/blog/bid/45555/How-to-Generate-GUIDs-in-ArcMap


0

ESRI'nin Ark Hidro Araçları , arka planda çalışan benzersiz bir kimlik yöneticisi de yükleyen bir araç çubuğu ile birlikte gelir. Araç çubuğu, özellik sınıfı veya coğrafi veritabanı başına benzersiz kimlikler atamanıza olanak tanır. Kimlik yöneticisi varsayılan olarak yalnızca Arc Hydro veri modelinin bir parçası olan HydroID adlı benzersiz kimlik niteliklerini işler. Ancak diğer nitelikleri de ele alacak şekilde ayarlanabilir. Araçlar çok sayıda belge ile birlikte gelir, bu nedenle kimlik yöneticisini ihtiyaçlarınıza göre yapılandırmak sorun yaratmamalıdır.

Benzersiz kimlik, bence, her zaman bir tamsayıdır. Benzersiz kimlikler atadıktan sonra, yönetici yapılandırmaya uyan yeni oluşturulan her özellik için yeni benzersiz kimlikler atamaya özen gösterir.

Benzersiz kimlik yöneticisi, (AFAIK) kişisel coğrafi veritabanı gibi otomatik artan sayıları desteklemeyen veritabanı arka uçları için yararlı olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.