Wpis z mikrobloga

@ksiak: Dziwacznym rozwiązaniem jest np. obsługa constraintów:

For other storage engines, MySQL Server parses and ignores the FOREIGN KEY and REFERENCES syntax in CREATE TABLE statements. The CHECK clause is parsed but ignored by all storage engines.


A obsługa functional dependencies przed 5.7 jest ewidentą pułapką na niedoświaczonych programistów (na szczęście tylko raz musiałem to poprawiać w legacy code).

Dziwne zachowania zmieniają się zależnie od konfiguracji i wersji ale po pewnym
@plushy: rozumiem, że zdajesz sobie sprawę z faktu, iż MySQL jako jedyna baza posiada wymienne Engine'y, i obsługa constrainów to kwestia samego silnika przechowywania danych a nie bazy?
Dodatkowo nadal nie podałeś przykładu "przekłamywania danych". A co do dziwnych zachowań, to nie nazwałbym tak tego, zważywszy na fakt naprawdę ogromnych zmian które nastąpiły w ostatnich wydaniach jak 5.6 czy 5.7 (co sam zauważyłeś).
MySQL jako jedyna baza posiada wymienne Engine'y

@ksiak: MariaDB, fork MySQL, też posiada. A z bezpłatnych tylko InnoDB ma wsparcie dla kluczy obcych, więc tylko to się nadaje się do 99% aplikacji.
@Ginden: wiesz jak sam zauważyłeś MariaDB to fork który bazuje na MySQL, skoro tak to można by wskazać Percona Server który także jest forkiem. Co do kluczy obcych, jeżeli by tak było to MongoDB nie zdobyłoby takiej popularności ;)
@ksiak: Po pierwsze, bazy nierelacyjne (błędnie i powszechnie określane jako NoSQL) są w większości zastosowań zwykłym hype i tworzą więcej problemów niż rozwiązują.
Dopóki nie masz dużych ilości danych o zmiennej strukturze to stosowanie baz nierelacyjnych to proszenie się o kłopoty ze spójnością danych.
@Ginden ale ja rozumiem różnice pomiędzy tymi bazami i rozumiem do czego one mogą być przydatne. Wskazałem tylko, że są zastosowania w których nie używa się kluczy obcych, nic więcej.