Wczoraj w pracy brutalnie zderzyłem się z rzeczywistością. Pisałem program "bazodanowy" (tak na szybko bo czas gonił, a statystyki były potrzebne). Nie miałem wówczas czasu na naukę SQL'a. Teraz już jestem gotowy i oto problem. Plan był taki: D7+ZEOS+MySql. Struktura bazy zrobiona, serwer postawiony, pozostało tylko napisać interface. Idę do pracy i mówię: szef, potrzeba zainstalować na serwerze firmy MySQL 4.1. Szef jak usłyszał SQL zrobił się blady. Usłyszałem, że "NIE!!!", ale.. "NIE!!!". I tu problem. Ci co mieli kiedyś okazję obsługiwać bazę na własnym formacie wiedzą jak to jest upierdliwe. Z racji, że nie mogę zainstalować nic co obsługuje SQL zostaje mi SQLite i tu jest problem bo potrzebuję relacji. Tak więc pytanie : macie pomysły na logiczną implementację takiej oto struktury? Prz redundacji nie powodującej zejścia na zawał serca?
Struktura bazy byłaby następująca (napiszę w pseudo kodzie):
tabela1(
data :DATE,
zmiana :BYTE,
maszyna :BYTE,
tabela2 :array [1..N] of record p1, p2, p3 end;
hash :CHAR(15)
);
I problem jest z relacją do tabe2. Myślałem nad generowaniem hasha na podstawie hash = MakeHash(Data, Zmiana, Maszyna) i reprezentacją tabeli tak:
tabela2(
hash :CHAR(15),
p1, p2, p3 :JAKISTYP
);
Pole hash robiłoby za relację pomiędzy tabelami. Macie inne pomysły?