Sorunuzu cevaplamak için hayır, bu Çevik bir süreçte normal değil.
Çevik bir tutumdan kaynaklanıyor gibi göründüğü yerlerde , Agile'nin kısa iterasyon tasarım / geliştirme / test döngüsünden ve Agile'nin bilinen gereksinimleri karşılayan, ancak yeni gereksinimleri karşılayabilmek için iyi yapılandırılmış hafif çözümlere yaptığı vurgudan kaynaklanmaktadır. minimal değişiklik. Bu iki şey göz önüne alındığında, bir geliştiricinin neyin aşağı inebileceğini bilmediğini, ancak değişikliğinin bildiklerinin DB'yi geri alınamayacak bir şekilde etkilememesi gerektiğini söyleyebilirsiniz, sadece şemada gerekli değişiklikleri yapar. "en hafif" yol, ve daha sonra aralıklarla "hafif" değişikliklerin bir dizi daha kalıcı ve istikrarlı bir şey yeniden düzenlenir.
Bunu söyledikten sonra, henüz Agile teorisi ve metodolojisine abone olan bir geliştirici ile çalışmadım ve aynı zamanda şemada rutin olarak tablo oluşturmanın ve silmenin herhangi bir nedenle gerekli olduğunu düşündüm. Çevik tokat-çizgi veya cıvata anlamına gelmez. Belirli bir kayda ait yeni bir veri alanının eklenmesini gerektiren bir hikaye verilirse, alanı tabloya eklersiniz. Bu değişiklik bir şeyi bozarsa, nedenini anlarsınız ve gerekli olabilecek diğer değişiklikleri yaparsanız (sorgulanan bir DB'ye bir sütun ekleyerek kırılacak çok az şey düşünebilirim; bu tür bir değişiklikle kırılırsa, daha büyük sorunlarınız var). Yeniden düzenleme normalde kodla sınırlıdır; şemanın değiştirilmesi genellikle kod değiştirmekten daha karmaşık bir süreçtir ve bu nedenle şema değişiklikleri yapılması gerektiğinde, genellikle daha dikkatli bir şekilde yapılır, ve en azından projenin gelecekteki yönünün bilgisine dikkat edildi. Veritabanının bir kısmını veya tamamını yeniden yapılandırmak, tasarımın temel başarısızlığını gösterir; Çevik olmak, programı ve veri yapısını organik olarak oluştururken izlenecek temel mimari ve tasarım kurallarının "ana planı" olmadığı anlamına gelmez.
Şimdi, Agile'da “bildiğiniz” şeyin daha sonra öğreneceğinizle çelişeceği durumlar var. Sisteminizin her Kişi için bir Adrese sahip olması gerektiğini söyleyin. Bu 1: 1 bir ilişki olduğundan ve çoğu durumda verilere ihtiyaç duyulacağından, Adres alanlarını Kişi tablosuna eklemeniz yeterlidir. Bir hafta sonra, bir Kişinin birden fazla Adresine sahip olma zorunluluğu alırsınız. Şimdi bu 1: N ilişkisidir ve düzgün bir şekilde modellemek için, alanları yeni bir Adres tablosuna ayırarak önceki değişikliklerinizi geri almalısınız. Bu, özellikle üst düzey geliştiriciler arasında rutin değildir. Deneyimli bir geliştirici, bir Kişinin bir Adresi olduğunu görür, bunları kavramsal olarak ayrı olarak kabul eder ve Kişiyi Adres ile bir FK referansı arasında bir Adres referansına bağlayan bir Kişi tablosu ve Adres tablosu oluşturur. İlişkinin doğası değişirse böyle bir şemanın değiştirilmesi daha kolaydır; "geniş" veri tablolarının tamamını oluşturmadan veya silmeden, Kişi ve Adres arasındaki ilişki 1: 1'den 1: N'den N: N'ye kolayca değiştirilebilir.