Veritabanında üyeleri doğum yaptıktan doğru yolu nedir?

4 Cevap php

Ben MySQL veritabanı içine üyesi doğumgünü eklemek için gereken bir proje üzerinde çalışıyorum. Ama kafam karıştı. Aslında ben bunu böyle kullanıyorum:

int (10)

Yani ben mesela biçimini değiştirmek Unix zaman "27/06/1960" PHP kullanarak ve doğum göstermek için fonksiyon date () kullanın. Daha iyi bir çözüm var mı? ve "DATE, DATETIME, TIMESTAMP" okumanızı tavsiye ederim herhangi bir iyi bir kaynak var mı?

Teşekkürler.

4 Cevap

Biri doğum günü ne zaman öğrenmek için en hızlı yolu DATETIME olarak her şeyi saklamak için 2 ya da 3 ayrı INT sütun ve muhtemelen ilave sütun kullanmak olacaktır. Normalde bu tablodaki satır bir şey var eğer böyle bir şey yaptığını, akılda tutmak, tarih temsil İnts ne de birden çok sütun kullanabilir yok iken

SELECT * FROM people WHERE birthday LIKE '%-12-24';

çok verimli değildir. Daha küçük veri kümelerinde çalışıyor ama biz binlerce veya daha fazla onlarca içine almaya başlamak çok yavaş çünkü (donanımınıza bağlıdır). Bazen verimli sistem tutmak için alışılmadık yollar, tarih sütun 4 setleri kadar alarak atık HD alanı küçücük miktarda veri depolamak (ay, gün, yıl, ve bir datestamp olarak her şeyi saklamak) için gereken kapalı öder hız.

Bunu yaparak sadece yapabilirsiniz:

SELECT * FROM people WHERE birth_month=12 AND birth_day=24

Ben DATETIME manual page for your database ile başlamak istiyorum. Bir veritabanı o sütunun saklamayı planladığınız verilerin tam türü için tasarlanmış özel bir sütun türü vardır Genel olarak, bu sık kullanmak iyi bir fikirdir. Bu sütunda depolanan tam olarak ne net yapmak, ama aynı zamanda potansiyel olarak daha güçlü sorguları yazmak için izin verir, ve DB motor sizin için bu duruma izin kalmaz.

Bir TARİH sütunu kullanın. MySQL "YYYY-MM-DD" olarak girdi beklediğini ve bunun gibi değerleri verir.

Kullanıcı tarafından sağlanan değildi (henüz) Bir tarih, bir NULL sütun olarak kodlanmış olabilir. Eğer "NULL" gerektirir ekstra bit gerek olmayabilir rağmen, hatta bunun için "0000-00-00" özel değeri yazabilir.

There is no right and no wrong decision. There is only one way you like the most, and this is the right decision.

I really can say, it does not matter how design your database and code, as long as you follow your own design. So if you use a special date pattern, than use it through the code, so you won't struggle with thousands of converts.

Örneğin HTML formu model: GG / AA / YYYY

PHP pattern (exlpode('/',$date)): DD:MM:YYYY

DB desen: DD-MM-YYYY