SQL Server Stok Yönetim İlişki Hk.
#1
Merhaba, SQL Server'da bir stok yönetim için veri tabanı tasarladım (ya da tasarladığımı düşünüyorum). Şekil olarak çok güzel duruyor ama "Tamam bu veri tabanı olmuştur." diyebilecek bilgim olmadığımdan sizlere kontrol ettirmek istiyorum. Mesela 4 tane çoka çok ilişki tablosu var, gerekli mi?
Doğru yolda mı ilerliyorum? Aydınlatabilirseniz sevinirim.

Not: Her şey hazırdır, siz sadece SQL Server'a kopyalayıp çalıştıracaksınız.
Saygılarımla...
SQL
  1. CREATE DATABASE STOK_YONETIM_DENEME
  2. ON(
  3. NAME=STOK_YONETIM_DAT,
  4. FILENAME='C:\STOK_YONETIM.mdf',
  5. SIZE=10,
  6. MAXSIZE=50,
  7. FILEGROWTH=5
  8. )
  9. LOG ON(
  10. NAME=STOK_YONETIM_log,
  11. FILENAME='c:\STOK_YONETIM.ldf',
  12. SIZE=5MB,
  13. MAXSIZE=25MB,
  14. FILEGROWTH=5MB
  15. )
  16.  
  17. CREATE TABLE malzemeCikisi(
  18. giden_nakliyat_id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
  19. giden_arac nvarchar(10),
  20. musteri nvarchar(60),
  21. malzeme_miktar INT,
  22. urun_olcu_birimi nvarchar(10),
  23. gonderilme_tarihi DATE,
  24. satis_fiyati money,
  25. cikis_toplam money
  26. )
  27.  
  28. CREATE TABLE malzemeGirisi(
  29. gelen_nakliyat_id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
  30. gelen_arac nvarchar(10),
  31. gelen_malzeme nvarchar(60),
  32. tedarikci nvarchar(100),
  33. malzeme_miktar INT,
  34. urun_olcu_birimi nvarchar(10),
  35. gelis_tarihi DATE,
  36. alis_fiyati money,
  37. giris_toplam money
  38. )
  39.  
  40. CREATE TABLE musteriler(
  41. musteri_id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
  42. musteri_adi nvarchar(50),
  43. musteri_telefon nvarchar(12),
  44. musteri_faks nvarchar(12)
  45. )
  46.  
  47. CREATE TABLE stok(
  48. stok_kodu INT PRIMARY KEY NOT NULL IDENTITY(1,1),
  49. urun_ad nvarchar(60),
  50. urun_tur nvarchar(20),
  51. eldeki_miktar INT,
  52. urun_olcu_birimi nvarchar(10),
  53. toplam_girisler INT,
  54. toplam_cikislar INT
  55. )
  56.  
  57. CREATE TABLE tedarikciler(
  58. tedarikci_id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
  59. tedarikci_adi nvarchar(60),
  60. tedarikci_telefon nvarchar(12),
  61. tedarikci_faks nvarchar(12)
  62. )
  63.  
  64. CREATE TABLE urunOlcuBirimi(
  65. urun_olcu_birimi_id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
  66. urun_olcu_birimi nvarchar(10)
  67. )
  68.  
  69. CREATE TABLE urunTuru(
  70. urun_turu_id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
  71. urun_turu nvarchar(10)
  72. )
  73.  
  74. CREATE TABLE urunler(
  75. urun_id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
  76. urun_olcu_birimi_id INT CONSTRAINT fk_uOB FOREIGN KEY REFERENCES urunOlcuBirimi(urun_olcu_birimi_id),
  77. urun_turu_id INT CONSTRAINT fk_uT FOREIGN KEY REFERENCES urunTuru(urun_turu_id),
  78. stok_kodu INT,
  79. urun_adi nvarchar(60),
  80. urun_turu nvarchar(10),
  81. urun_olcu_birimi nvarchar(10)
  82. )
  83.  
  84. CREATE TABLE i1(
  85. giden_nakliyat_id INT CONSTRAINT fk_gNID1 FOREIGN KEY REFERENCES malzemeCikisi(giden_nakliyat_id),
  86. musteri_id INT CONSTRAINT fk_mID1 FOREIGN KEY REFERENCES musteriler(musteri_id),
  87. urun_id INT CONSTRAINT fk_uID1 FOREIGN KEY REFERENCES urunler(urun_id),
  88. stok_kodu INT CONSTRAINT fk_sID1 FOREIGN KEY REFERENCES stok(stok_kodu)
  89. )
  90.  
  91. CREATE TABLE i2(
  92. stok_kodu INT CONSTRAINT fk_sID2 FOREIGN KEY REFERENCES stok(stok_kodu),
  93. gelen_nakliyat_id INT CONSTRAINT fk_gNID2 FOREIGN KEY REFERENCES malzemeGirisi(gelen_nakliyat_id),
  94. tedarikci_id INT CONSTRAINT fk_tID2 FOREIGN KEY REFERENCES tedarikciler(tedarikci_id),
  95. urun_id INT CONSTRAINT fk_uID2 FOREIGN KEY REFERENCES urunler(urun_id)
  96. )
  97.  
  98. CREATE TABLE i3(
  99. stok_kodu INT CONSTRAINT fk_sID3 FOREIGN KEY REFERENCES stok(stok_kodu),
  100. urun_id INT CONSTRAINT fk_uID3 FOREIGN KEY REFERENCES urunler(urun_id)
  101. )
  102.  
  103. CREATE TABLE i4(
  104. tedarikci_id INT CONSTRAINT fk_tID4 FOREIGN KEY REFERENCES tedarikciler(tedarikci_id),
  105. urun_id INT CONSTRAINT fk_uID4 FOREIGN KEY REFERENCES urunler(urun_id)
  106. )





  Alıntı
Bu mesajı beğenenler:
#2
Sayın Monelog,
ölçü birimi tablosu oluşturmuşsunuz ancak ürünler, malzeme girişi ve malzeme çıkışı tablolarında ürün ölçü birimi için foreign key kullanmanız gerektiği halde her tablo için ayrıca ürün ölçü birimi adlı yeni alanlar oluşturmuşsunuz.

malzeme çıkışı tablonuzdaki müşteri alanı ile müşteriler arasında ilişki yok oysa M.çıkış tablonuzda müşteriID foreign key olarak kullanılmalı

malzeme girişi için de tedarikçi alanında aynı problem var.

tasarımınızın uygulanabilirliği hakkında da oldukça ciddi tereddütlerim var. Halihazırdaki Stok takip sisteminizinde işlem akışınız hakkında hiçbir fikrim olmadığından kesin yanlıştır diyemiyorum. fakat yukarıdaki hatalar gözardı edilemez.

i1,i2,i3,i4 isimli tabloların oluşturulma maksadı anlaşılır değil, bu tablolarla ne yapmak istediğinizi ben açıkçası anlayamadım.
tasarımınızda sanki kurgulama mantığında da hatalar olabilir. kurgulamayı pratikte uygulanan somut bir örnekten yola çıkarak mı hazırladınız?



  Alıntı
Bu mesajı beğenenler:
#3
Merhaba, öncelikle ilginiz için çok teşekkür ediyorum, uygulanabilirliği konusunda ben de sizinle hemfikirim, zaten hem yeniyim hem de mantığı bir türlü oturtamadım, bu konuda da hiç tecrübem yok, öğrenmeye çalışıyorum.

i1, i2, i3, i4 sonsuza sonsuz ilişkiler içindi fakat ben de ilk defa böyle bir şeye giriştiğim için hatalar da ardı ardına geldi tabi.

Tabloyu hazırlarken örneklere baktım ama sadece tablolarda olması gerekenler için bakmıştım, tabloyu ben hazırladım.

Eleştirileriniz için tekrardan teşekkür ediyorum.



  Alıntı
Bu mesajı beğenenler:
#4
Bence mantığı oturtabilmek için en iyi yöntem;
günlük hayatımızda (Ev veya iş) işlem akışına hakim olduğumuz bir örnek üzerinde proje tasarlamak. Böylece hatalarımızı anlamak daha kolay olur. Ben de SQL konusuna yeni geçiş yapanlardanım. veritabanı konusunda bu forumdaki arkadaşlarımızdan çok şey öğrendim. Hala da öğrenmeye devam ediyorum.



  Alıntı
Bu mesajı beğenenler:
#5
Kusura bakmayın internete pek fazla giremiyorum, tavsiyeniz için teşekkür ederim, ufaktan mantığı oturtmaya başladım, dediğinizi de en kısa zamanda yapmayı planlıyorum.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Sql Server Sorunu :( ferkuu 1 425 27-06-2022, 14:15
Son Mesaj: adnnfrm
  Sql Server - Access Arayüzü benuva 15 2.949 20-11-2019, 08:30
Son Mesaj: akd27
  Sql Server Diagram Hatası benuva 1 761 15-11-2019, 11:53
Son Mesaj: benuva
  sql server 2012 expres ile bir access veri tabanını ağda paylaşma sercann 0 1.038 08-01-2019, 23:23
Son Mesaj: sercann
  Microsoft SQL Server Hatası PHEADRUS 2 1.451 21-04-2018, 11:01
Son Mesaj: PHEADRUS
  sql server tablosunda otomatik satır silme hedefkaya 0 1.867 06-11-2016, 18:26
Son Mesaj: hedefkaya
  sql server 2008 yürüyen bakiye ozkbilgi 3 2.380 18-08-2016, 14:10
Son Mesaj: ozkbilgi
  Firebird (.FDB) Dosyasının MsSQL Server'e Aktarılması turakine 1 2.825 18-04-2016, 11:57
Son Mesaj: devilspath

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi