Wpis z mikrobloga

Hej.

Mam takie pytanie. Uczę się powoli php/mysql tworząc prosty skrypt typera dla znajomych i tu mam pewien problem. Linie z którymi mam problem zaznaczyłem.

Jak dać dane w zaznaczonych polach? jako INT, które pobierze id z teamname/teamguest? W panelu admina będzie wybór drużyn, które wcześniej dodałem, czy jak to zrobić?

Drugie pytanie o mteam_date - to będzie rozpoczęcie spotkania. Dać to jako DATETIME? Skrypt będzie zamykał powiedzmy możliwość typowania na minute przed rozpoczęciem spotkania.

Sorka trochę wypiłem dziś i nie wiem czy rozumiecie :D

#webdev #php #mysql
Pobierz MJToshi - Hej.

Mam takie pytanie. Uczę się powoli php/mysql tworząc prosty skrypt ...
źródło: comment_sJlJRMEpV6or9oCbjt09WTH95kkkGT5q.jpg
  • 6
Dla mteam_home, mteam_guest INT(4) tak samo jak dla id w tabeli teams. Datę najlepiej trzymać w formie uniksowego timestampu INT(10) UNSIGNED. Z resztą jak kto woli.
@MJToshi: wszystkie ID daj jako UNSIGNED (takie pole przechowuje tylko wartości dodatnie, dzięki czemu masz do wykorzystania większy zakres. A ujemnych ID i tak nie będziesz miał).
Co do dat to nie ma sensu rezygnować z obsługi ich przez bazę danych, więc nie jako INT a jako DATETIME.

Dodatkowo w drugiej tabeli zapomniałeś o zdefiniowaniu klucza głównego i kluczy obcych do tabeli drużyn.
Czy to jest konieczne(klucz główny itd)?


@MJToshi: nie jest konieczne ale mocno zalecane. Jeśli pominiesz klucz główny to InnoDB (domyślny dla MySQL od dłuższego czasu) i tak utworzy sobie taki klucz ale nie będziesz miał do niego dostępu. http://dev.mysql.com/doc/refman/5.5/en/innodb-index-types.html

A co do kluczy obcych to nie definiując ich uniemożliwiasz bazie danych pilnowanie spójności danych (a tak naprawdę to jedna z głównych zalet baz relacyjnych) i sobie łatwe łączenie danych z wielu