folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Veritabanı Tasarımı Nasıl Olmalıdır



Veritabanı Tasarımı Nasıl Olmalıdır

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Arkadaşlar, bir bir haber sistemi için üyelik sistemi yapacağım da, aklıma şu takıldı

    Üyeler tablosu tek mi olsun (yazar, yönetici, editor, normal üye), yoksa tabloları ayrıştırayım mı?

     

    Yada sizlerin fikirleri varsa onu da öğrenebilir miyim?  Olması gerkenler yada fikir öneriliriniz için şimdiden teşekkürler.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nurulmac11
    nurulmac11's avatar
    Kayıt Tarihi: 04/Ağustos/2012
    Erkek

    ayırdıgında her tabloya tek tek bakıcakmısın her loginde ? yada user a rolünü sorup ona göremi bakıcaksın ? ayrıca neden ayırasın ki hiç ayıranı görmedim


    black implies white, self implies other, life implies death.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    iki tablo yap, birisinde rolleri tut, diğerinde üyeleri tut, üyeler tablosunda roleID diye bir kolonun olsun, onu da role tablosundan verirsin. Ayrı yapmana gerek yok. Ayrıca üyeler tablonda IsActive diye bir field in olsun, birini banladığında silmek yerine isActive i 0/false yaparsın, böylece login olurken kullanıcı adı şifre doğru olsa bile isActive 0 olduğundan login yapamacak, banlanıldığı anlaşılacak... gibi gibi...

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek
    unbalanced bunu yazdı

    iki tablo yap, birisinde rolleri tut, diğerinde üyeleri tut, üyeler tablosunda roleID diye bir kolonun olsun, onu da role tablosundan verirsin. Ayrı yapmana gerek yok. Ayrıca üyeler tablonda IsActive diye bir field in olsun, birini banladığında silmek yerine isActive i 0/false yaparsın, böylece login olurken kullanıcı adı şifre doğru olsa bile isActive 0 olduğundan login yapamacak, banlanıldığı anlaşılacak... gibi gibi...

    Aynen boyle. Roller tablonda da hatta yeni makale yazabilir silebilir degistirebilir seklinde boolean kolonlar tut. Sonra uyelerle eslestirirsin bunlari.


    echo "imzanız özel karakter içermemelidir";
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Yani kısaca şöyle

    Kullanıcılar Tablosu
    kullanici_id, rol_ID, kullanci_adi, aktif, şifre, vss...

    1,              , 1       , denem1,     , 0,    , bla

    2,              , 1       , denem2,     , 0,    , bla

    3,              , 2       , denem3,     , 1,    , bla

    Roller Tablosu
    rol_id, rol_adi

    1,              ,editor

    2,              , admin

    3,              ,kullanici

     

    Peki, rollere ait izinler tablosu ile ilgili detaylı bilgi verebilir misiniz? (Şu sayfaya girebilir, yorum yazabilir, üye silebilir vs..)


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    badass
    badass's avatar
    Kayıt Tarihi: 30/Aralık/2002
    Erkek

    Direk drupal kursan daha kolay olmazmi? 

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Hocam, kendim yazıyorum. O yüzden fikre ihtiyacım var


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nurulmac11
    nurulmac11's avatar
    Kayıt Tarihi: 04/Ağustos/2012
    Erkek
    ontedi bunu yazdı

    Hocam, kendim yazıyorum. O yüzden fikre ihtiyacım var

    her sayfanin basinda calistirdigin bi fonksiyonun olsun : requireRole(5) gibi gibi. o 5 roller tablosundaki rol idsi olsun.

    'bu sayfayi gormek icin en az editor olmak gerekir' gibi bi kontrol yapsin bu fonksiyon. userin yetkisi yetmiyosa 'yetkisiz erisim' sayfasina atsin.

    rollerin hiyerarsik gitmiyosa birden fazla rol pasla buna (adminler ayni anda editor olamasin istiyosan)

    atiyorum : requireRole(3,5,7);

    gibi


    black implies white, self implies other, life implies death.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Arkadaşlar roller ve izinleri kosunda bir tasarım örneği ve de içinde örnekle beraber anlatabilirseniz kafamda daha güzel şekillenmiş olacak her şey.

    Muamma olan yerler var halen.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    şu sayfaya girebilir, şuralarda gezebilir olaylarının daha gelişmiş için ekroller diye bir hücre aç roller tablosuna yazılım tarafından arraya atıp sırayla alacağın bir ekroller fonksiyonu hazırla ekroller hücresinde de 1,0,1,1,1,0 gibi tut izinleri ilerde adamlar özel yönetim seviyesi açtırma, dinamik olarak panelden editörün adminin nerelere girip giremeyeceğini ayarlama olayı yaptırmak isterse kullanırsın kolayca. 1 girebilir, 0 giremez olarak düşün ekroller(kullanıcıRolID,sayfaID) şeklinde denetleme yaparsın.

    Eğer sayfa çoksa veya her sayfa için girebilir ama değiştiremez, girebilir değiştirebilir ama silemez gibi ütopik ayar gayar düşünüyorsan benim yöntemim şöyle; her sayfanın bir sayfaIDsi var, her işlemin de bir kodu var örneğin silme x görme w güncelleme e gibi. Bunları arraya atıp arrayımı işlem esnasında kontrol ettirip o sayfa ve işlem arrayımda var mı yok mu kontrol ettirip varsa geç yoksa yetkin yok sayfasına göndertiyorum.

    Örnek tablo: http://i.hizliresim.com/YBlJAa.png 

    pesimistzombie tarafından 01/May/15 13:34 tarihinde düzenlenmiştir

    :|
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    ontedi bunu yazdı

    Yani kısaca şöyle

    Kullanıcılar Tablosu
    kullanici_id, rol_ID, kullanci_adi, aktif, şifre, vss...

    1,              , 1       , denem1,     , 0,    , bla

    2,              , 1       , denem2,     , 0,    , bla

    3,              , 2       , denem3,     , 1,    , bla

    Roller Tablosu
    rol_id, rol_adi

    1,              ,editor

    2,              , admin

    3,              ,kullanici

     

    Peki, rollere ait izinler tablosu ile ilgili detaylı bilgi verebilir misiniz? (Şu sayfaya girebilir, yorum yazabilir, üye silebilir vs..)

    aynen yapı bu şekilde hocam, izin olayını nurulmac11 söylemiş zaten ama biraz daha efektif olması lazım. Yani bir sistem yazarken genişletilebilir olmalı. Mesela 3 kullanıcı tipin var diyelim, sonra 4. eklendi ve ona da erişim yetkisi vermek istiyorsun, bu sefer ne olacak? her fonksiyona eklemen gerekiyor (requirerole olayı)

    bunun yerine gruplar oluşturaibilirsin ve her fonksiyona bir grup atabilirsin. Mesela A fonksiyonuna X grubundakiler erişim hakkına sahip olsun, B fonksiyonuna Y grubundakiler erişebilsin, C fonksiyonuna da Z grubundakiler erişsin.

    Sonra diyelim ki yeni bir rol daha oluşturdun, bunun A ve C fonksiyonuna erişmesini istiyorsun, o halde X ve Z grubuna eklemen yeterli :) bu eklemeyi de db de bir tabloda tutabilirsin.

     

    http://typecastexception.com/post/2014/02/19/ASPNET-MVC-5-Identity-Implementing-Group-Based-Permissions-Management-Part-I.aspx

    örnek olarak burayı incele, en sonlarda o şekil bir mantığın örneği var.

     

Toplam Hit: 703 Toplam Mesaj: 11