[]

Database uzmanlarına bir soru

Merhaba dostlar,

Şimdi bir bilgisayar toptancısı için B2B sistem hazırlanması gerekiyor, bu adamlar bilgisayar sarf malzemesinden tutun da elektronik eşyaya kadar bir çok farklı türde ürün satıyorlar ve her ürünün teknik özelliklerini veritabanında kaydetmemiz gerekiyor yani standart bir ürün tablosu oluşturup o ürünle ilgili özellikleri bu tabloya işlemek ihtiyacımızı gidermiyor.

İşveren şöyle bir sistem istiyor ben yönetici panelinden yeni bir ürün tipi oluşturduğumda o ürün tipine ait özel alanları kendim oluşturabileyim ve her yeni ürünü bu tipi seçerek eklediğimde o ürün tipine ait field'ları doldurayım.

Yani anlayacağınız esnek bir sistem olmalı ve sınırsız sayıda ürün tipine sınırsız sayıda alan ekleyebilmemiz gerekiyor ayrıca şu da önemli, bazı özellikler integer değer taşıyacakken bazıları belki datetime bazıları string olacak.

Böyle bir yapı nasıl kurulur ? Genel kabul görmüş teknik nedir ?

 
Ben böyle programlar yazmıyorum sadece yaklaşımım nasıl olurdu onu yazayım...

Her tip için dinamik olarak tablo oluşturup "tipler" database'ine atardım. Arayüzde verileri gösterirken devamlı veri formatlaman gerekecek, kayıt yaparken devamlı veri formatlamak ve hatalı veri girişini engellemen gerekecek.
  • kimlanbu  (06.08.16 11:12:47) 
@acemi, 2000 yılında takılı kalmışsın istersen biraz araştır o dediğin teknoloji tarihe karıştı. Ben böyle bir şey var mı diye sormuyorum bunu yapanlar nasıl yapıyor diye soruyorum zilyon tane proje var böyle esnek yapıyla çalışan.


  • solo  (06.08.16 12:41:53 ~ 12:42:59) 
stok tutmak açısından doğru bir kurgu değil elbette bu. yapılamaz demiyorum, sadece doğru değil diyorum. SAP dahil bir sürü ERP ile entegre uygulama yazdım, hepsinde belli bir şablon oluyordu, olmalıdır.

yapılamaz demiyorum kısmına gelince, nosql ile rahatlıkla yaparsın. şema yok zira, key-value mantığında çalışır. value'nun içeriği senin keyfince olur. bi tablo yaparsın, o tablonun bi row'u başka tipte field'lara sahipken bi altındaki row'un ortak alanlar dışındakileri bambaşka sayıda ve tipte olabilir. şema olmadığından kısıtlaman da olmaz.

nosql ile kritik dataları tutmak konusunda bir takım endişeler okuyorum, production seviyesinde bir ürün çıkartmadan evvel nosql ile geliştirilecek db'nin backup'ını nasıl almalısın kısmını iyice araştır. ben nosql'de asla kritik data tutmuyorum, o yüzden pek sallamıyorum data-loss olsa bile.
  • cevap botu  (06.08.16 12:59:59) 
amma piroblem yapmissiniz
al sana cozum :

uruntipi ve tipDetay diye 2 tablo olusturacaksin.

uruntipi (Id, tipIsmi)
tipDetay (DetayId, tipId(foreign key), DetayIsmi, DetayTipi (int), DetayDegeri(string 120))

* böylece bir uruntipine atadığında sınırsız detay girebilirsin girebilirsin.
* detay degerini kaydederken string e çevirip kaydedersin.
* detayTipine gore stringden cevirip kullanırsın.
Detaytip 0 = int
DetayTip 1 = date
DetayTip 2 = binary, gibi

oldu bitti gitti

** string yerine base64 e falan cevrilir aslinda ama karistirmak istemedim.
  • supermatik  (06.08.16 13:19:03 ~ 13:28:03) 
@supermatik, sanırım bir tablo daha lazım yanlış anlamadıysam, tip isimlerinin tutulduğu 1. tablo, ürün tiplerinin fieldlarının tutulduğu 2. tablo, ve bu field'lara bağlı ürün detaylarının tutulduğu 3. bir tablo olmalı.

@acemi, hem SAP hem de AS400 geliştiricisi olarak hala seninle ilgili düşüncem aynı yine de teşekkür ederim cevap verdiğin için.
  • solo  (06.08.16 14:38:27 ~ 14:38:57) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.