Ben kendi tablolarıma FIRMA, SIPARIS, URUN vb. ERISIM diye bir alan açmak istiyorum amacım program kullanıcılarının select çektiğinde kayıda erişimini kısıtlamak.
Şöyle bir şey düşündüm. * FIRMA tablosunda ERISIM diye bir kolon açayım kolon türü varchar(250) olarak. * FIRMA tablosunda ERISIM alanına 1,2,5,6 diye UYE tablomun ıd'lerini yazayım. * UYE ID'si girişde session'a atayım örnek "5" üye kayıdı listelemek istedi. SELECT cümleme WHERE ekleyelim.
Ama sorum şu hızlı çalışan nasıl bir where cümlesi yapmam lazım?
SELECT * FROM FIRMA WHERE CHARINDEX(',5,',','+ERISIM+','),
SQL de Employee,Role ve EmployeeRole gibi ara tablo açıp, AuthorizeAttribute gibi bir attribute oluşturup burada ilgili kişinin ilgili sayfaya erişme yetkisini sorgulayabilirsiniz.Bu şekilde yönetim daha kolay ve gerçekte de bu şekilde. Int veya long veritipini varchar olarak tutmak zaten sağlıksız, buradaki işlemler normalizasyonun ruhuna rahmet okuttuğu gibi direk sorgu kısmından abukluğu anlayabilirsiniz. Nacizane fikrim elbette siz bilirsiniz.
Ben kendi tablolarıma FIRMA, SIPARIS, URUN vb. ERISIM diye bir alan açmak istiyorum amacım program kullanıcılarının select çektiğinde kayıda erişimini kısıtlamak.
Şöyle bir şey düşündüm.
* FIRMA tablosunda ERISIM diye bir kolon açayım kolon türü varchar(250) olarak.
* FIRMA tablosunda ERISIM alanına 1,2,5,6 diye UYE tablomun ıd'lerini yazayım.
* UYE ID'si girişde session'a atayım örnek "5" üye kayıdı listelemek istedi. SELECT cümleme WHERE ekleyelim.
Ama sorum şu hızlı çalışan nasıl bir where cümlesi yapmam lazım?
SELECT * FROM FIRMA WHERE CHARINDEX(',5,',','+ERISIM+','),
Amacım aşağıdaki gibi bir form yapıp data şeklini yukarıdaki gibi yapmak.https://youtu.be/cEn2A0t7-ts?t=1m5s