Tag Desteği için Veritabanı Yapıları
Okuyucu : 1.247
Günlük Okuyucu : 1,6
Küçük bir sistem üzerinde çalışıyorum, Tag desteklemesini istiyorum. Veritabanını planlarken Tag kısmına gelince kafamda bir iki fikir canlandı. Hemen internetten diğer sistemlerin Tag desteklerinin nasıl olduğuna baktım. Özetle "Best Practice" leri incelemek lazım.
Tags: Database schemas makalesi süper 3 ana modelden bahsediyor ve basit şekilde artı / eskilerini irdeliyor. Tagschema diye de tamamen bu konuya odaklanmış deli bir blog var (oha artık sadece bununla ilgili blog mu olur!).
Tags: Database schemas makalesinden sonra benim aklımdakini ortaya koymak istedim nitekim sistemi de bu şekilde geliştireceğim. Muhtemelen bu model' de daha önceden yapılmış ve kullanılmaktadır zaten.
Kafamdaki yapı Tag + Trove Kategori sisteminin birleşmesi ile oluşmakta. Ancak Tag' ların serbestliğini kısıtlamamak için onlarda "Unattanded Tag" olarak girilebilecekler. Daha sonradan veya giriş anında gönüllü veya yönetici sahipsiz tagları ilgili kategoriler ile ilişkilendirebilecek.
Burada ortaya çıkacak sorunlardan biri iki kategoride aynı isme sahip olan taglar (mesela: grafik>rezil, programlama>rezil) karışıklığı. Aslında bu tag sistemi yapısının ana düşüncesini kırıyor mı kırmıyor mu tam çözebilmiş değilim. Örnek olarak bir makale "rezil" tagı içeriyorsa tüm diğer alakasız rezillikler ile de ilişkilimidir? Bir açıdan evet bir açıdan hayır. Bu durumdaki taglarada "Relative Tag" lar diyebiliriz. Bu da iki tip tag ve sonuç oluşturacaktır.
Database Yapısına bakacak olursak şu şekilde olmalı;
Post
-------------
id
title
post
TroveTag
---------------
id
parent_id
tag
TagAndPost
----------------
post_id
tag_id
Yeni bir post anında önceden olmayan Taglar oluşturulacak ve db' ye girilecek. Eğer önceden varsa onunla ilişkilendirilecek ("Relative Tag" sorunu burada soru olarak çözümlenmeli - ya da direk es geçilmeli)
Dezavantajlardan biri çok pratik bir query ile datalar çekilemeyecektir. Sonuç olarak elimizde Sonsuz kategori destekleyen gerçek kategorili ve Tag' lı bir sistem var. Bu da blog sistemlerindeki ikinci "kategori" tablosunun ortadan kalkmasına ve sınıflandırma sisteminin tek yerden kontrol edilmesine de izin veriyor. Ek olarak postlar arasındaki ilişkilerde daha kesinleşiyor. Mesela bu yöntem ve biraz ekstra SQL ile "ilişkili yazılar" çok daha verimli şekilde sunulabilir.

Yorumlar
Aşağıdaki form aracılığı ile yorumlarınızı ve fikirlerinizi gönderebilirsiniz. Henüz bu konu hakkında bir yorum yazılmamış.
Yorum Ekle
Diğer Yazılar
Take no prisoners comrade
Takedown Amerika da yeni yayına girmiş
Tarihin Sorusu : IM şeytan mı?
Tasarımcılar Macromedia' yı sevince
Tasdix ve Book Share
Tasiniyoruz...
Tatil bitti...
Tatil ve Kurban Bayramı
Tatil ve Ruh Hali
Tayfalar, Damıtılmış Hayatlar
TCL DV 007-128 Mb'lik Kart hediyeli
TCPA
TDD için süper notifikasyon
TeaKolik İngilizce Yayındaymış...
Team Remote ASP Debugger
Tehlikeli İnsanlar
Tekerleği Yeniden Keşfetmeyin
Tekinsiz Evler ve Donnie Darko
Teknoloji bir ise yaramiyor, Önemli olan sonuç almak
Neredeyim ?
Ferruh.Mavituna » Haberler » Tag Desteği için Veritabanı Yapıları