2016-04-01 11 views
0

Birden çok şirketten birden çok kullanıcısı olacak bir web sitesi yapıyorum. Her şirkete aynı veri tabanının aynı tablolarla bir kopyası verilir. Tek fark, veritabanı adıdır. Her kullanıcının kendi şirketlerine atanan veritabanına erişmesini istiyorum.Kullanıcıya dayalı bir veritabanı seçmek nasıl kullanılır?

Kullanıcının oturum açmasına göre veritabanını seçmek için bir yöntem bulmam gerekiyor. o ...

$dbCon = new mysqli('localhost', 'root', '', $_SESSION['databaseName']);

Belki bir çerez veritabanı adı olarak bir kullanıcılar tablosundaki? dan bir oturum var kullanmak için kabul edilebilir mi? Ya da her şeye yanlış bakıyorum. Herhangi bir girdi harika olurdu. Ben hala öğreniyorum. Teşekkürler

+0

İçinde tam olarak aynı bilgilere sahip birden fazla veritabanının bulunması mantığı nedir? Şirketlerden farklı kullanıcılara tek bir veritabanına erişebilmenin geçerli olacağını düşünüyorum. –

cevap

1

Benim önerim, bir tablodaki tüm kullanıcı hesaplarına sahip "giriş" veritabanınız olarak bir veritabanı seçmek. Ardından, kullanıcı masasına, giriş bilgilerini doğruladığınız bir sütun ekleyin. Şirketi veya "atanmış veritabanı adı" nı bu sütunda saklayabilirsiniz. Kimlik doğruladığınızda, DB bağlantınızı kapatabilir ve doğru atanan veritabanıyla yeni bir bağlantı kurabilirsiniz.

Sizin için şema kullanıcı girişi

LoginTable aşağıdakilere sahip olabilir

0

: (username,password,...,company_id)

Şirket: (company_id,....,dbname)

Yani en kısa sürede kullanıcı girişi olarak o şirketin kimliği karşılık gelen veritabanı seçebilirsiniz şirket tablosundan. Sorgu, doğal birleştirme şirketi ve LoginTable tarafından tek bir komutla yazılabilir. Böylece, dbname'yi aldıktan sonra daha fazla kullanım için oturum değişkeninde saklayabilirsiniz.

Umarım anlaşmışsınızdır.

İlgili konular