2015-04-25 15 views

cevap

3

Bu alıntı, Basic Mapping bölümünün altında bulunan belgelerin eski bir sürümünden gelir. En son belgeler bu metni artık içermiyor, , ancak hala doğru.

son belgelerin Limitations and Known Issues bölümde bu biraz ışık tutuyor:

DEĞİL otomatik tanımlayıcı alıntı yapıyor tüm desteklenen satıcıları ve kenar vaka sorunlarına Doktrini 2 arasındaki uyumluluk nedenleriyle.

Farklı SQL satıcılarında kullanılan farklı teklif stratejileri ve SQL'in ORM tarafından oluşturulma biçimi nedeniyle, tüm durumlar için çalışan bir çözüm bulmak oldukça zordur. Ve korumak için daha da zor. Bu imkansız olmayabilir, ama Doktrini ekibi, zamana değmeyeceğine ve (belki de daha da önemlisi) kod karmaşıklığına, denemeye karar verdi.

Karmaşık SQL nesli hakkında bir ipucu için, git repository koduna göz atın.

Yalnızca tanımlayıcılar için alfasayısal karakterler (ve altçizgi) kullanmak ve için ayrılmış anahtar kelimeler kullanmak yaygın bir en iyi uygulamadır. Bunları takip ederseniz, tanımlayıcı alıntı yapmaya gerek yoktur. tanımlayıcıları alıntı

  1. Kılavuzu, Basic Mapping bölümüne bakın: Eğer gerekiyorsa senin eski veritabanı ile uğraşan çünkü

    , Doktrin 2 çözümler sunar.

  2. Daha önce bahsedilen en iyi uygulamaları izleyen veritabanı görünümleri oluşturun.

Not: Bilmiyorum olanlar için: "tanımlayıcı" değil birincil anahtarlar bakın, ama

+0

sayesinde bir cevap vb tablolar, sütunlar, indeksler, adlarının, ancak Esas sorumu gerçekten cevaplamadı. Karmaşık tanımlayıcıların ne kadar karmaşık olduğunu gösteren bir örnek verebilir misiniz? Her zaman "X'in tanımlayıcısını al" (x = tablo, sütun, veritabanı adı vb.) Ve "Q (X) 'in teklif stratejisini uygulayabildiğin kadar basit olduğunu düşündüm" (genellikle sadece bir tür alıntıya sarılır) . Öyle değil mi? –

+0

Sanırım bunu şu şekilde görüntüleyebilirsiniz: Teklif verdiğiniz sistemi yarattığınızı düşünün, tüm DB satıcılarını destekleyin. Şimdi bu sistemi Doktrin ile bütünleştirmeyi hayal edin. Alacak zaman ve kaynakları tahmin etmeye çalışın. Buna sahip olmanın getirdiği kazanç mı? –

+0

BTW, bu ifadenin belgelemede olmasının temel sebebi, uzun zaman önce iyi yayınlanan bir tartışmanın olmayışıdır: Çoğu ORM ve benzeri durum, alıntılama nedeniyle SQL enjeksiyonundan güvenlidir. Ama en çok sadece alıntı değerleri değil, tanımlayıcılar. Bu yanıltıcı bulundu. Pek çok ORM, tanımlayıcılara teklif vermediklerini açıkça belirtmek için belgelerini güncelledi. –