SMF de Veritabanı Yapılısı

Burada SMF veritabanının yapısı anlatılmaktadır.
Tabloları incelemeye başlamadan önce tablolar hakkında bilmemiz gereken bazı terimler var.
Primary Key : bir tablonun kesinlikle bir kolonu primary key yani birincil anahtar olarak atanmıştır.
Primary key satırların anahtarıdır yani sıra numarası da diyebiliriz.Primary key olan kolondaki veri tekrar etmez ve boş(null) değer almaz.Yani 2 tane 1 değeri olmaz veya 3 tane 2 değeri olmaz ve o kolon boş geçilemez.
İndex : İndexler ise diğer tablolar ile bağlantılı kolonlardır.
*Log tabloları ve önemli olmayan tablolar atlanmıştır.Ayrıca önemli olmayan kolonlar ve bizim bilmediğimiz kolonlar için açıklama yazılmamıştır.Zamanla tamamlanacaktır.

smf_attachments

Tablo Açıklaması =Forumda bulunan eklentilerin bilgilerinin tutulduğu tablodur.Mesajlara ekledikleriniz ve sunucuya yüklenmiş avatarlar.
-ID_ATTACH=Tabloya ait primary key.
-ID_THUMB=
-ID_MSG= Eğer satır bir mesaj eklentisi ise hangi mesaja eklendiğini bilmemizi sağlar.Burda o mesaja ait id numarası yazar.
-ID_MEMBER= Eğer satır bir mesaj eklentisi değil de bir avatar ise o avatarı hangi kullanıcı yüklemişse o kullanıcının kullanıcı id si yazar.
-attachmentType= Bu kolon dosyanın avatar mı yoksa mesaj eklentisi mi olduğunu öğrenmemizi sağlar.
-filename=Eklenen dosyanın adı bu kolona yazılır.Yüklenen şey avatar ise sistem o avatara otomatik isim atar.
-size= Yüklenilen dosya boutunu gösterir
-downloads=O dosyanın kaç kere download edildiğini gösterir
-width+-height=Dosya resim ise ve resim eklenirken boyutlandırma verilmişse taglar arasında O değerler buraya yazılır

smf_ban_groups


Tablo Açıklaması =Yasaklama yapılmış ise her yasaklama buraya kaydolur.
-ID_BAN_GROUP=Primary Key
-name=Yasaklamaya verilen isim
-ban_time=Ne zaman banlandığı
-expire_time=Banın bitiş süresi
-cannot_access=Yetkisi yok
-cannot_register=Giriş yapamaz
-cannot_post=Mesaj gönderemez
-cannot_login=Giriş Yapamaz
-reason=Banlanma sebebi
-notes=Üye banladığınız da yazdığınız notlar

smf_ban_items

Tablo Açıklaması = Bir üstte üyeyi yasaklamıştık.Eğer şimdi ise o yasaklamaya tetikleyici ekleyeceğiz.
-ID_BAN=Primary key
-ID_BAN_GROUP= Üyeye ait yasaklama kaydı
-ip_low1..4=
-ip_high1..4=
-hostname=Eğer kişinin hostname’ine yasak koyduysak bu satıra eklenrcektir.
-email_address=Tetikliyicilere e-mail adresinin de eklediğinizde bu kolon dolar
-ID_MEMBER=Hangi üyeyi yasakladıysanız o üyenin id numarası bulunur.
-hits=

smf_boards

Tablo Açıklaması =Bu tabloda bölümler bulunur.
-ID_BOARD=Bölümün ün id numarası yani primary key.
-ID_CAT= Bölümün hangi kategoride olduğunu gösterir
-childLevel= Alt bölümün levelini gösterir
-ID_PARENT=
-boardOrder=Bölümün hangi sırada olduğunudur.
-ID_LAST_MSG=O bölüme atılan son mesajın id numarası
-ID_MSG_UPDATED=
-memberGroups=O bölümü hangi üye gruplarının görebildiğini belli eder.
-name=Bölümün adı
-description=Bölüm açıklaması
-numTopics=O bölümde bulunan toplam konu sayısı
-numPosts=O bölümde bulunan toplam mesaj sayısı
-countPosts=O bölüme atılan mesajların sayılıp sayılmayacağını gösterir yani o bölüme üye mesaj atarsa üyenin mesaj sayısı artmayacaktır.
-ID_THEME=Bölüme özel bir tema atanmışsa o temanın id_numarasını gösterir.
-permission_mode=
-override_theme=Üyelerin temasını yok say seçeneği işaretlendiğinde dolacak bölüm.

smf_calendar

Tablo Açıklaması =Burası takvim tablosudur.
-ID_EVENT=Primary key
-startDate=Olayın başlangıç tarihi
-endDate=Olayın bitiş tarihi
-ID_BOARD= Olayın hangi board da olduğu
-ID_TOPIC= Olayın hangi topic ile ilişkili olduğu
-title=Olayın başlığı
-ID_MEMBER= Olayın hangi üye tarafından eklendiği veya hangi üyeye ait olduğu

smf_calendar_holidays

Tablo Açıklaması = Admin panelinde tanımlayabilidiğiniz tatil günler vs etkinliklerin tutulduğu tablodur.
-ID_HOLIDAY=Primary Key
-eventDate=Olay tarihi
-title=Olay Başlığı

smf_categories

Tablo Açıklaması = Forumunuzda bulunan kategoriler bu tabloda bulunur.
-ID_CAT=Kategori id numarası.
-catOrder=Kategorinin sırası
-name=Kategori adı
-canCollapse=Kategorinin varsayılan olarak kapalı mı açık mı olacağını bu kolonda belirleriz.

smf_collapsed_categories

Tablo Açıklaması =Üye bazlı kategoriyi kapatma özelliğinin kayıtlarını tutan bir tablodur.
-ID_CAT=Kategori id si.Yani yangi kategorinin collapse yapıldığı
-ID_MEMBER=Bu collapseyi hangi üyenin yaptığı

smf_membergroups

Tablo Açıklaması = Üye gruplarının depolandığı tablodur.
-ID_GROUP=Grup id numarası.Primary key
-groupName=Grup adı.
-onlineColor=Çevrim içi kullanıcılar listesinde grüntülenecek renk kodu
-minPosts=O gruba dahil olmak için atılacak en az mesaj sayısı.
-maxMessages=
-stars=Grup yıldızının linki

smf_members

Tablo Açıklaması = Üyelerinin kayıtlarının tutulduğu tablo.
-ID_MEMBER= Üyenin id numarası.Primary key
-memberName=Üyenin kullanıcı adı.
-dateRegistered=Üyenin kayıt olduğu tarih.
-posts=Üyenin mesajları
-ID_GROUP=Üyenin hangi üye grubuna dahil olduğu
-lngfile=Üyenin hangi dil dosyalarını kullandığı.
-lastLogin=Üyenin son login olma tarihi
-realName=Üyenin görünen adı.Değiştirmediği müddetçe kullanıcı adı ile aynı değerdir.
-instantMessages=
-unreadMessages=
-buddy_list=arkadaş listesi,arkadaş id numaraları virgüllerle ayrılmış olarak kayıt edilir.
-pm_ignore_list=özel mesaj göndermesini istemediğiniz üyelerin id numaraları yine virgüllerle ayrılmış olarak kayıt edilir.
-messageLabels=Özel mesajlarda etiket oluşturduğunuzda bu kolonda tutulur.
-passwd=Üyenin passwordu criptolanmış bir şekilde bu kolonda tutulur.Çözülmesi imkansızdır.
-emailAddress=Üyenin e-mail adresi.
-personalText=Üyenin kişisel mesajı.
-gender=Üyenin cinsiyeti
-birthdate=Üyenin doğum tarihi.
-websiteTitle=Üyenin web site başlığı.
-websiteUrl=Üyenin web site adresi.
-location=Üyenin bulunduğu yer.
-ICQ=Üyenin Icq numarası
-AIM=Üyenin Aim adresi
-YIM=Üyenin Yim adresi
-MSN=Üyenin Msn adresi
-hideEmail=Üyenin profilinden email adresinin görünmemesi istediğinde işaretlediği checkbox un kayıtlaırı bu kolonda tutulur.
-showOnline=Üyenin online durumunun gösterilip gösterilmeceği.
-timeFormat=Üyenin profilden ayarladığı zaman formatı.
-signature=Üyenin imzası
-timeOffset=
-avatar=Üyenin avatar linki
-pm_email_notify=
-karmaBad=Eksi karma puanı
-karmaGood=Artı karma puanı
-usertitle=Üyenin başlığı yani kullanıcı adının altında görünene kısım.
-notifyAnnouncements=Duyuruları alıp alamauacağı.
-notifyOnce=
-notifySendBody=
-notifyTypes=
-memberIP=Üyenin ip adresi.Son giriş için
-memberIP2=Üyenin 2. ip adresi 2.son giriş için
-secretQuestion=Üyenin gizli sorusu
-secretAnswer=Üyenin gizli soruya cevabı
-ID_THEME=Üyenin hangi temayı seçtiği
-is_activated=Üyenin profilinin aktif olup olmadığı
-validation_code=Üyenin aktivasyon numarası
-ID_MSG_LAST_VISIT=Son ziyaret ettiği mesajın id numarası.
-additionalGroups=Ek üye grubun id numarası.
-smileySet=Üyenin profilinden seçtiği gülümseme paketi.
-ID_POST_GROUP=Üye eğer mesaja bağlı üye grubuna dahil ise o grubun id numarası
-totalTimeLoggedIn=Toplam forumda bulunduğu zaman.
-passwordSalt=

smf_message_icons

Tablo Açıklaması =Konu açarken seçilen ikon.
-ID_ICON=İkonun id numarası.Primary key
-title=İkonun başlığı
-filename=İkonun adı ve uzantısı
-ID_BOARD=İkonların hangi bölümde görüneceği.Boş ise tüm bölümlerde görünür.
-iconOrder=İkon sıralaması.

smf_messages

Tablo Açıklaması = Tüm mesajların bulunduğu tablodur
-ID_MSG=Mesajın id numarası primary key.
-ID_TOPIC=Mesajın hangi konuda olduğu.
-ID_BOARD=Mesajın hangi bölümde olduğu.
-posterTime=Mesaj atılma tarihi.
-ID_MEMBER=Mesajı hangi üyenin attığı.
-ID_MSG_MODIFIED=
-subject=Mesajın başlığı
-posterName=Mesajı kimin attığı.Kullanıcı adı.
-posterEmail=Mesajı gönderenin e-mail adresi.
-posterIP=Mesaj atıldığı anda üyenin ip adresi.
-smileysEnabled=Yeni konu açılırken ek seçeneklerde bulunan mesajda gülümsemelere izin ver checkinin kaydı.
-modifiedTime=Düzenleneme zamanı.
-modifiedName=Düzenleyenin adı.
-body=Mesajın içeriği.
-icon=Mesaja ait ikon.

smf_moderators

Tablo Açıklaması = Bölüm moderatörlerinin kayıtlarının tutulduğu tablo.
-ID_BOARD=Bölüm id_si
-ID_MEMBER=O bolumde moderatör olan üyenin id numarası

smf_package_servers

Tablo Açıklaması = Bu tablo sizin için önemli değildir.Eklenti indirebileceğiniz adreslerin kayıtlı tutulduğu tablodur.
-ID_SERVER=Primary key.
-name=Eklenti serverının adı.
-url=Eklenti serverinin adresi.

smf_permissions

Tablo Açıklaması = Bütün izinlerin tutulduğu tablodur.
-ID_GROUP= Yetkilendirme yapılacak id grubu.
-permission= Yetki adı.
-addDeny= Yasaklanıp yasaklanmayacağı.

smf_poll_choices

Tablo Açıklaması = Anketlere Verilen cevapların tutulduğu tablo
-ID_POLL= Anketin id numarası
-ID_CHOICE=Çekeneğin id numarası
-label=
-votes= Kaç oy aldığı

smf_polls

Tablo Açıklaması = Anketler tablosu
-ID_POLL=Anketin id numarası.
-question=Anket sorusu
-votingLocked=Anketin kilitli olup olmadığı
-maxVotes=
-expireTime=Anketin bitiş tarihi
-hideResults=Sonuçların gizlenip gizlenmeyeceği
-changeVote= Oylamayı değiştirme imkanı
-ID_MEMBER=Anketi açan üyenin id numarası.
-posterName=Anketi açan üyenin kullanıcı adı.

smf_sessions

Tablo Açıklaması = Siteye giren üyeye üye girişi yaptıktan sonra bir session id verilir.Bu session id lerin tutulduğu tablodu.
-session_id=Primary key.
-last_update=Sayfanın son yenilenme zamanı.
-data=

smf_settings

Tablo Açıklaması = Burası ayarlar tablosudur.Admin panelinden yaptıgınız her ayar buraya kaydedilir.Mesela duyuru eklediğinizde buraya kaydedilir veya "Üyelerin duyuruları devre dışı bırakmasına izin ver" seçeneğini işaretlediğinizde o ayar adına ait kayıt 1 yani etkin olur varsayılan hali 0 yani pasif dir.
-variable=Ayarın adı.
-value=Ayarın değeri

smf_smileys

Tablo Açıklaması = Gülümseme paketlerinin tutulduğu tablo
-ID_SMILEY=Primary Key
-code= Gülümsemenin kodu Örn : : )
-filename=Gülümsemenin dosya adı
-description=Gülümsemenin açıklaması
-smileyRow=
-smileyOrder= Gülümsemenin sırası
-hidden= Gizlilik düzeyi

smf_themes

Tablo Açıklaması = Temaların tutulduğu tablodur.
-ID_MEMBER=Eğer kullanıcı profilinden farklı bir tema seçmiş ise o üyenin id numarası
-ID_THEME=Hangi temayı seçmiş ise o temanın id numarası
-variable= Temaya ait ayar açıklamaları
-value=Temaya ait ayar değerleri.

smf_topics

Tablo Açıklaması = Konular tablosu
-ID_TOPIC=Konunun id numrası.Primary Key
-isSticky=Konunun sabit olup olmadığı
-ID_BOARD=Konunun hangi bölümde olduğu
-ID_FIRST_MSG=Konun ilk mesajı
-ID_LAST_MSG=Konunun o anki son mesajı.O konuya yeni bir cevap atıldığında bu değer değişir.
-ID_MEMBER_STARTED=Konuyu hangi üyenin başlattığı
-ID_MEMBER_UPDATED=Konuya en son hangi üyenin mesaj yazdığı
-ID_POLL=konuda bir anket var ise o anketin id numarası
-numReplies=O konuya verilen toplam cevap sayısı
-numViews=O konunun toplam görüntülenme sayısı
-locked=Konun kilitli olup olmadığı

Örnek SQLLER

Örnek 1 : 1 İd li üyenin mesaj sayısını bulalım.

SELECT posts FROM smf_members WHERE ID_MEMBER=1

Örnek 2 : 1 id li kategorinin bölümlerini bulalım ve o bölümdeki konu ve mesaj sayılarını bulalım.Ve bunu yaparken birleşik bir sql kullanalım.

Select b.ID_CAT AS Kategori_idsi,b.name AS Kategori_Adi,a.ID_BOARD AS Bolum_idsi,a.name as
Bolum_Adi,a.numTopics AS Konular,a.numPosts AS Mesajlar FROM smf_messages AS a
INNER JOIN smf_topics AS b ON (b.ID_CAT=a.ID_CAT)
WHERE b.ID_CAT=1
ORDER BY boardOrder

Arkadaşlar elinizi Repe götürmekte çekinmeyin Repleri saçsaçsaçsaç puanları toplatoplatoplatopla

(alıntıdır)