Arsen Lüpen
Hectopat
- Katılım
- 28 Şubat 2021
- Mesajlar
- 102
Daha fazla
- Cinsiyet
- Erkek
Sorum şu: Kullanıcıların tutulduğu bir user tablomuz olsun. Bu tabloda her bir kullanıcı 1 satırlık yer kaplıyor. Şimdi bu kullanıcıya ait ürünlerin tutulduğu bir products tablomuz olduğunu varsayalım. Bu tabloda
Bu tarz One-to-many ilişkisi olan tablolar
Ya da bu durum daha farklı nasıl yapılabilir? Çok veri olmaması için belirli aralıklarla veri temizliği yapılmasını önerebilirsiniz. Bu ürün mantığında olabilir; kullanıcı bir ürün satın aldığında ve üzerinden 1 yıl geçtiğinde o veriye gerek kalmayabilir. Ancak, Tinder mantığında bir kaydırma işlemi yapıyorsak, yani tabloda
user_id
, product_id
ve product_name
diye üç alanımız olsun. User_id
'si 1 olan kullanıcının 10 tane ürünü olduğunu düşünelim. Bu durumda aslında bu kullanıcı için 10 satır olmuş oluyor. Milyonlarca kullanıcı olduğunu ve her bir kullanıcının onlarca, yüzlerce, belki de binlerce ürünü olduğunu düşündüğümüzde, milyarlarca hatta katrilyonlarca satır oluşması demektir.Bu tarz One-to-many ilişkisi olan tablolar
foreign key
ilişkisi ile mi tutulmalı yoksa hashtable
kullanarak her bir kullanıcının ürünleri sadece 1 satır mı kaplamalı? Yani, user_id
ve product
şeklinde iki alan olacak. Product
alanında hashtable
olacak ve içinde product_id
ile product_name
keyleri olacak. Böylece kullanıcıya ait tüm veriler product alanı altında hashtable içerisinde tutulacak.Ya da bu durum daha farklı nasıl yapılabilir? Çok veri olmaması için belirli aralıklarla veri temizliği yapılmasını önerebilirsiniz. Bu ürün mantığında olabilir; kullanıcı bir ürün satın aldığında ve üzerinden 1 yıl geçtiğinde o veriye gerek kalmayabilir. Ancak, Tinder mantığında bir kaydırma işlemi yapıyorsak, yani tabloda
swiper
ve swiped_user
diye iki alan varsa, bir kullanıcının kaydırdığı her bir kullanıcı 1 satır veri oluşturacak. Bu da bir sürü satır demek. Burada veri temizleme işlemi yapamayız çünkü, kullanıcının sola kaydırdığı bir kişi ile bir daha hiç eşleşmemesi gerekmektedir. Burada da bir sürü satır olmaması için swiped_users adı altında bir hashtable alanı oluşturulup. Swpied_user_id
ve swipe_direction
şeklinde iki key verilip 1 kullanıcıya ait tüm veriler birden fazla satır ile değil de 1 satırda 1 alan içinde saklanmış olur.