• 28-07-2010, 23:19:25
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Şimdi olay şu şekilde..

    Evinizi temizleteceksiniz. Hizmetçiler var, istediğiniz hizmetçiyi tutabiliyorsunuz. Ayşe, Fatma, Hayriye olsun isimleri.. Ayşe sadece hafta içi, Fatma sadece hafta sonu, Hayriye ise sadece tatillerde (bayram tatili, resmi tatiller vs) çalışıyor. Ve bu 3 hizmetçinin belirli bir çalışma saatleri var.. Atıyorum Ayşe 09:00 - 12:00 arası, Fatma 11:00 - 15:00 arası, Hayriye 16:00 - 20:00 arasında çalışıyor.

    Tabloda olması gerekenler : Hizmetçiler, temizlik yapılacak gün çalışıyor mu çalışmıyor mu, çalıştığı saatler..

    ID - Hizmetçi - Çalıştığı Gün - Saat
    1 - Ayşe - Hafta içi - 09:00-12:00
    
    ID - Hizmetçi - Hafta içi - Hafta sonu - Tatil - Saat
    1 - Ayşe - 1 - 0 - 0 - 09:00-12:00
    Aslında birkaç şey daha vardı, not almadığım için hatırlayamadım şimdi.. Kolonlardan 2 tanesi aynı oluyordu, veri tekrarlanmasın diye bunu matris ile çözüp tekrar tablo oluşturuyorduk.. gibi bir şeylerdi sanırım

    Tablo yapısı önerebilecek var mı arkadaşlar ?
  • 29-07-2010, 23:42:36
    #2
    Bence ilk önce saat aralıkları diye tablo yarat

    ---------------------
    saat_araligi :
    id int = mutalaka id olmalı, id sistemli db ler hızlı çalışıyor (otomatik sayı olmalı)
    aciklama varchar
    bas_saat time = tarih aralıklarında çalışacağı saatin başlangıcı
    son_saat time = tarih aralıklarında çalışacağı saatin bitişi
    hizmetci_id int = buraya hizmetçi id numarasını giricez
    calisagi_gun_bas date = çalışacağı tarih aralığının başlangıcı
    calisagi_gun_son date = çalışacağı tarih aralığının sonu

    ---------------------

    Birde Hizmetçi tablosu yaratmalı

    ---------------------
    hizmetci:
    id int
    adi_soyadi varchar
    calisiyor boolean

    ---------------------

    Hizmetçiye istediğin gibi ayrıntıyı girersin

    bundan sonra yapman geren çok basit, admin panelde ilk önce "Hizmetçi" Bilgisi girdireceksin. Ondan sonra "tarih aralığı" sayfasından hizmetçiyi seçtirip çalışacağı tarih aralıklarını ve o aralıklarda çalışacağı saatleri seçtirip kaydediceksin. Ondan sonra şu aşağıda ki sql sana hizmetçinin çalıştığı tarihleri ve saatleri göstericek;

    select h.adi_soyadi, h.calisiyor, s.aciklama, s.bas_saat, s.son_saat, s.calisagi_gun_bas, s.calisagi_gun_son from hizmetci as h, saat_araligi as s
    where h.id = s.hizmetci_id
    and h.id= buraya hizmetçi id gireceksin

    başka eklenicek bişey varsa yardımcı olabilirm (: