Mysql: i 1 masa ya da kullanıcı başına bölünmüş içine benim veri koymak gerekir?

2 Cevap php

This data is for a holiday cottage's simple accommodation calendars. The data is simple and stores dates when each cottage is booked.

Cols olurdu cottage_id, booked_from_date, booked_until_date ve ben * 200-300 kullanıcılar yılda kullanıcı başına yaklaşık 60 satır beklenebilir.

Ben bu tablo doğru koymak gerekir?

2 Cevap

Yes, bu (tüm evler için) tek bir tablo konulmalıdır.

Eğer ayrı tablolar halinde (yani belirleyici bir türü / id ayrılmış olabilir) tek bir tabloda olması gereken veri yerleştirerek başladığınızda acı bir bütün dünyasına çalışacaktır.

Just think of how you are to write a query to retrieve availability accross all units, for a given date, accross 10-40 or more units?

Normalizing the table into a MANY to MANY structure is perfectly normal, seperating Cottages from Users and linked by a table CottageUsers with the booked dates.

Randy'nin cevabı iyi olduğunu düşünüyorum ... onun eklemek için başka bir fikir gibi bir takvim tablo kullanmak olacaktır:

COTTAGE_CALENDAR

  • cottage_id
  • tarih
  • reservation_id

Rezervasyonun her gün için tek bir satır ekleyin ve Randy inşa COTTAGE_RESERVATION tabloya reservation_id ekleyerek (... sonra overbooking önlemek edeceğiz .... cottage_id ve Tarih alanlarını kombine birincil anahtar yapmak , ilişkisel veri bağlantısı için) ....