dominik bułaj

php developer & web designer

Moje boje z kluczami obcymi w MySQL

Foreign Keys (klucze obce) to bardzo przydatna funkcjonalność w MySQL (silnik InnoDB). Umożliwiają zachowanie integralności danych i porządku w bazie (dzięki zdarzeniom ON DELETE i ON UPDATE).

Ostatnio straciÅ‚em prawie godzinÄ™ – lub nawet nieco ponad – gdyż za nic w Å›wiecie nie chciaÅ‚ mi siÄ™ zaÅ‚ożyć klucz obcy. Co ciekawe tabela byÅ‚a tabelÄ… łączÄ…cÄ… dwie inne (relacja 1:n – jeden news : kilka tagów), bÄ™dÄ…ca kopiÄ… innej – z subtelnÄ… zmianÄ… (inna nazwa jednego pola).

Okazało się, że nazwy kluczy obcych muszą być unikalne w skali całej bazy danych, o czym niestety nie wiedziałem:

If the CONSTRAINT symbol clause is given, the symbol value must be unique in the database. If the clause is not given, InnoDB creates the name automatically.

Cóż – niewiedza kosztuje, a czas to pieniÄ…dz. Mam nadziejÄ™, że wpis komuÅ› siÄ™ przysÅ‚uży ;)

Postanowiłem podzielić się bardzo ciekawym zbiorem tablic czy ściągawek, tak zwanych Cheat Sheets. Zbiór nie tylko ciekawy, ale i dość pokaźny. Na stronie www.addedbytes.com zamieszczono aż 19 ściągawek, m.in. z takich tematów jak:

  • PHP
  • MySQL
  • SVN (Subversion)
  • CSS
  • mod_rewrite (Apache)
  • JavaScript
  • wyrażenia regularne (regular expressions)
  • Microsoft SQL Server
  • Microformats
  • Ruby on Rails
  • ASP / VBScript

Polecam dodać do zakładek adres http://www.addedbytes.com/cheat-sheets/, napewno kiedyś się przyda ;-)

MySQL napędza Web 2.0

Baza danych MySQL została wybrana przez najbardziej popularne serwisy Web 2.0 (m.in. YouTube, Flickr, Technorati,
FeedBurner, Feedster, Wikipedia, Digg, del.icio.us) jako główne narzÄ™dzie skÅ‚adowania danych. Główne znaczenie przy podjÄ™ciu decyzji miaÅ‚y – szybkość i skalowalność przy równoczesnym zachowaniu niskich kosztów.

Tim O’Reilly zauważa, że jednym z głównych kół napÄ™dowych Web 2.0 jest platforma serwerowa dynamicznych stron WWW – LAMP (Linux, Apache, MySQL, P[Perl/Python/PHP]).

Więcej: MySQL AB :: MySQL Powering Web 2.0

Archiwa