Örnek Veri Tabanı Tasarımı

Örnek Veri Tabanı TasarımıÖnceki derslerde veri tabanı tasarımı nasıl yapılır küçük örneklerle kavramaya çalıştık. Şimdi Derste ise “oyuncak takas sistemi” uygulamasının veri tasarımını yapacağız.

Herzaman yaptığımız gibi öncelikle yapacağımız veri tabanı tasarımı için bir plan oluşturalım.

Plan:   
hesap(kullanıcı_Adi, sifre)
yetki(rol)
kullanıcı(ad soyad, email,tc telefon adres)
kategori(kategori)
marka(marka)
oyuncak(adi, alınan fiyat, takas_değeri, yıpranma oranı, yaşgrubu, acıklama)
oyuncak_yorum(yorum)
oyuncak_puani( puan)
oyuncak_resmi(resim)
mesaj( gonderen, alan, mesaj_içeriği)
teklif(gonderen, alan, oyuncak, is_durum, teklif_tarihi) kargo_firması(firma, sabit_ucret)
takas(teklif, kabul_tarihi, kargo, teslim_alan, teslim_tarihi)

Bitmiş ve tablolar arasında ilişkilendirme yapılmış veri tabanı:

--create database db_takas;

create table tbl_hesap(
   hesap_id int primary key identity,
   kullanici_adi nvarchar(30) not null,
   sifre char(8) unique not null
)
create table tbl_yetki(
   yetki_id int primary key identity,
   yetki nvarchar(20)
)
create table  hesapToYetki(
  id int primary key identity,
  hesap_id int foreign key references tbl_hesap(hesap_id),
  yetki_id int foreign key  references tbl_yetki(yetki_id)
)
create table tbl_kullanici(
    kullanici_id int primary key identity,
 adi_soyadi nvarchar(50) not null,
 email nvarchar(40) unique not null,
 telefon char(11) unique not null,
 tc_no char(11) unique not null,
 adres nvarchar(max),
 hesap_id int unique foreign key references tbl_hesap(hesap_id)
)
create table tbl_kategori(
     kategori_id int primary key identity,
  kategori nvarchar(80) not null
)
create table tbl_marka(
   marka_id int primary key identity,
   marka nvarchar(50) not null
)
create table tbl_oyuncak(
   oyuncak_id int primary key identity,
   oyuncak_adi nvarchar(50) not null,
   alinan_fiyat smallmoney default 0,
   takas_degeri smallmoney default 0,
   yipranma_orani tinyint check(yipranma_orani between 1 and 100),
   yasgrubu nvarchar(6) not null,
   aciklama nvarchar(max),
   marka_id int foreign key references tbl_marka(marka_id),
   kullanici_id int foreign key references tbl_kullanici(kullanici_id)
)
create table tbl_oyuncakTokategori(
   id int primary key identity,
   oyuncak_id int foreign key references tbl_oyuncak(oyuncak_id),
   kategori_id int foreign key references tbl_kategori(kategori_id)
)

create table tbl_oyuncak_yorum(
    oyuncak_yorum_id int primary key identity,
 yorum nvarchar(max),
 oyuncak_id int foreign key references tbl_oyuncak(oyuncak_id),
 kullanici_id int foreign key references tbl_kullanici(kullanici_id)
)
create table tbl_oyuncak_puan(
    oyuncak_puan_id int primary key identity,
 puan float check(puan between 1 and 10),
 oyuncak_id int foreign key references tbl_oyuncak(oyuncak_id),
 kullanici_id int foreign key references tbl_kullanici(kullanici_id)
)
create table tbl_oyuncak_resim(
   oyuncak_resim_id int primary key identity,
   resim nvarchar(50) not null,
   oyuncak_id int foreign key references tbl_oyuncak(oyuncak_id)
)
create table tbl_mesaj(
    mesaj_id int primary key identity,
 mesaj nvarchar(max) not null,
 mesaj_zamani datetime default getdate(),
 gonderen_id int foreign key references tbl_kullanici(kullanici_id),
 alan_id int foreign key references tbl_kullanici(kullanici_id)
)
create table tbl_teklif(
   teklif_id int primary key identity,
   teklif_tarihi datetime default getdate(),
   aciklama nvarchar(max),
   is_durum bit default 0,
   gonderen_id int foreign key references tbl_kullanici(kullanici_id),
   alan_id int foreign key references tbl_kullanici(kullanici_id),
   oyuncak_id int unique foreign key references tbl_oyuncak(oyuncak_id)
)
create table tbl_kargo(
   kargo_id int primary key identity,
   kargo nvarchar(40) not null,
   ucret smallmoney default 0
)
create table tbl_takas(
    takas_id int primary key identity,
 kabul_tarihi datetime default getdate(),
 teslim_alan nvarchar(60),
 teslim_tarihi datetime,
 kargo_id int foreign key references tbl_kargo(kargo_id),
 teklif_id int unique foreign key references tbl_teklif(teklif_id)
)

Kodları sorunsuzca çalıştırdıysak, oluşacak veri tasarımı diyagramı aşağdaki şekilde olacaktır. Aşağdaki şekli inceleyerek tabolar arasındaki ilişkileri rahatlıkla görebiliriz.

takas

Tablolar arasi ilişkiler, bire-bir, bire-çok, çoka-çok

65 / 100

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.