2016-03-26 49 views
0

Ben şöyle benim db bir tablo:iyi uygulama

| userid | username | dateloggedin | etc 
| 1   | Joebloggs | 27-03-16  | etc 
| 2   | Nathanbloggs| 27-03-16  | etc 

ve şöyle bir günlük tablosunun:

| eventtype | userid  | eventdate  | etc 
| loggedin | 1   | 27-03-16  | etc 
| loggedout | 1   | 27-03-16  | etc 

Ben görüntülediğimizde eventlog girdilerinden sadece kullanıcı adını değil, kullanıcı adını da görüntülemek istiyorum.

Buradaki en iyi uygulama nedir, kullanıcı adını hem eventlog tablosunda hem de kullanıcı tablosunda saklamalıyım, böylece tüm verilere tek bir sorguda erişebiliyorum? Yoksa diğer tabloyu referans olarak görmek ve kullanıcı adını oradan almak için sadece bir kez mi saklamak için kullanmalıyım?

Hacimleri planladığımı göz önünde bulundurarak, hangi yolun en iyi olduğundan emin değilim - sorgularla diziler arasında geçiş yapmaktan daha fazla işlem süresi veya verileri çoğaltarak kullanılan daha fazla depolama alanı.

+0

Kesinlikle "diğer tablonun öbürüne referans vermek için kullanıcı kimliğini kullanmalısınız" (JOINS) – JimL

+0

Görev: JOIN' hakkında bilgi edinin. –

+0

Bir olay günlüğü, bir kimlik yerine bir kullanıcı adı depolayabildiğim ancak belirtilen nedenlerden ötürü kullanamadığım bir örnektir. Vakaların% 99'unda, veritabanınızdaki verilerin çoğaltılmasını önlemek istersiniz. –

cevap