2009-09-22 13 views
6

Kısa bir süre önce, çok değer alanlı olan yeni Access 2007 özelliğine tanıtıldım. İlk izlenimim, tek bir alanda birden çok değer kullanmanın kötü bir fikir olduğu yönündedir. Geleneksel olarak bir kaydın bir alan için birkaç değere sahip olmasını istiyorsanız, başka iki tablo oluşturacak ve bunları yabancı anahtarlarla ilişkilendireceksiniz. Bu, kolay sorgulama yapılmasına olanak tanır ve aynı değerlerin aynı öğeye başvurmasını sağlar. Bir hücrede listelerin tutulması, veritabanlarının amacının ihlali gibi görünüyor. Multivalued Alanlar İyi Bir Fikir mi?

beni kirli hissediyorum yapmazlar bu alanlar için orada iyi kullanır mı?

cevap

3

fikri raporu/arayüz nesneleri kolayca oluşturulmasını desteklemek oldu ek olarak, tek görüntüler bir sorun için kategoriler söylüyorlar bir form oluşturabilirsiniz. yerine

Mekanik Elektrik

personnally benden bir alanda bir değer olarak

Mekanik, Elektrik

: Yerine bazı yoğun işler yapmanın, tanrı korusun katılır, depolamak için sözde simplier oldu beğenmeyin ve bu tür bir alanın muhasebeci olmayan teknik personel için yaratıldığını varsayın :) (sadece şaka). Cidden, hiç kimsenin kullanamayacağı nadiren aptalca bir araç yaratmadıkça ve nadiren herkesin girmek zorunda kalacağı sürece bunu kullanmayın.

bu birleştirmeler edilir işlemek için uygun yolu, sütunların içindeki hiçbir çiftleri ve hiçbir çoklu değerleri (bu zaten bütün 3NF ise).

bu oluşturulan diğer nedeni bir sharepoint listesinin içindeki çoklu değerleri desteklemek amaçlanmıştır.

Jon

+0

1 şaka, heh. – Bratch

3

Erişim pazarının büyük bir bölümü teknik, kullanıcıların olmayan geliştiricisi, ama türüdür. Normalleşmenin değerini anlayamayabilirler, ancak işe yarayacak bir şeyler bulabilirler. Sadece kolay bir şeye ihtiyaç duyuyorlar ve insanların yazdığı bir serbest metin alanından daha iyi, her şeyin aynı şeyi yazmasını umduğun yerden daha iyi.

daha fazla bilgi edinmek üzere, diğer tablolar ve yabancı tuşlarını kullanarak başlayabilir. Ancak bazen çok değerli bir alan yeterlidir. birden çok değerli alanların

+2

Tıpkı 640K ve 2 hane yıla bakış saklamak için;) muhasebeciler için – RedFilter

1

SADECE SAY NO!
Eğer SQL öğreniyorsanız, doğru yolu öğrenin ve tablolarınızı normalleştirin. veritabanı tasarımını biliyorsanız, doğru şekilde yapın. Her özellik kullanılmamalıdır.

6

Bkz: Ben Suraj Poozhiyil, Erişim Programı Müdürü ... hem Suraj uzun bir konuşma vardı ve kullanmaya gerek geliştiriciler yok yürekten katılıyorum

Multivalued datatypes considered harmful: How dangerous can a data type be?

çok değerli alanlar. Veritabanlarını anlayan kişiler, 'un zaten çok sayıda ilişkisini iyi bir şekilde uyguladılar ve çok değerli alanlardan hiçbir fayda elde edemezler.

geliştiricilere açık ve kesin önerilerim çok değerli alanları kullanmamaktır. Onlar bize potansiyel ağrı dışında sunmak için hiçbir şey yok.

+1

O zaman neden onları yarattılar? Açıkçası gerçek dünyada kullanımları vardır, etraflarında inşa edilen bütün bir veri tabanı, Unidata ve Evren vardır. – Noah

+0

@Noah: Hızlı bir google bana bunların SQL'e değil PICK'e bağlı olduğunu söylüyor. Anladığım kadarıyla, PICK, birden çok değerli veriyi sorgulamak için gereken sözdizimine (operatörler vb.) Sahiptir, Access/Jet/ACE bunu yapmaz. Gerçekten benim alanım, dürüst olmak gerekirse (Intersystems Caché'yi kullandım ama sadece SQL Gateway üzerinden - ki bu mükemmel - MUMPS şeyler değil). 5NF ile en mutlu oluyorum :) – onedaywhen

4

gerçekten burada soruya cevap değil, ama okuyucular MultValued Databases fikri etrafında bütün bir niş sanayi olduğunu not etmek isteyebilirsiniz:

Bu veritabanları sahip oldukları bir ilişkisel veritabanı farklılık desteklemek ve tüm tek bir değeri

sahip niteliklerini ziyade, değerler listesi olan niteliklerin kullanımını teşvik özellikleri 10

Bu durumda, veritabanı altyapısı, tablolarının çok boyutlu yapısını (Access'in muhtemelen yapmadığını varsayar) barındıracak şekilde bir sorgu dili uzantısına sahip olduğundan, Access'teki çok değerli alanlarla gerçekten karşılaştırılabilir değildir. Ancak her durumda ilginç bir paralellik (daha önce MultValued Veritabanlarını bile duymamış olanlar için).

0

Çok değerli alanları gerçekten sevmiyorum. Belki de eski PICK/Unidata sistemi gibi diğer çok değerli sistemlerle arayüz oluşturmayı kolaylaştırmak için yaptılar. Bahse girerim, bu yeni özelliğin SQL Server'a yoğun olarak kullanımıyla bir Access veritabanını yükseltmek kadar eğlenceli.

+0

ACE'de olmanın tek nedeni Sharepoint ile uyumluluk içindir. Verilere aslında kayıt kümeleriyle erişilebilir ve gerçek V: N tablolarına yazmak için bir VBA yazmak oldukça kolay olacaktır. Tabii ki, Access SSMA'sının SSMA'ları MV alanlarını anlayabiliyor ve onları iyi bir şekilde geliştirebiliyor. Eğer ilginizi çekiyorsa, hem A2007 hem de SSMA 4.2'nin kurulu olduğu gibi, bunu bir vuruş olarak bulabilirim. –

+0

@ David-W-Fenton: "ACE'de olmasının tek nedeni, Sharepoint ile uyumluluk içindir" - ... ancak Access Ekibi, Access'teki genel kullanımını desteklemektedir. Bu bir kez SharePoint söz değil: http://office.microsoft.com/en-us/access-help/use-a-list-that-stores-multiple-values-HA010031117.aspx – onedaywhen

+1

Pazarlama malzemeleri çok sık değil tüm gerçeği ortaya çıkarmak. –

2

Çoklu değer alanlı alanlar, yeni bir tablo ve ilişki oluşturmak zorunda kalmadan kolayca kurtarabilir.

Soda -> Türleri

Neden sadece Pepsi düzenli diyet ve daha geliyor söylemek yepyeni masa gerek yoktur. Keşke

onlar o zaman onlar sadece bir tablo gibi olurdu, bize çok değerli alan sütunlarını vermek için izin ancak çok daha az çalışma ile

İlgili konular