Mam dwie tabele o tej samej strukturze, A i B. Pewna aplikacja jest zapisywana, aby zawsze zapisywała te same dane w obu tabelach.
Po dyskusji z kolegą na temat możliwości zaoszczędzenia miejsca na dysku zastanawiam się, czy mysql lub postgresql może tworzyć na stole jako „alias” lub „dowiązanie symboliczne” innego.
Chcę, aby zachowanie było bardzo podobne do zachowania dowiązania symbolicznego do pliku miękkiego; gdzie odczyt z samego dowiązania symbolicznego lub jego celu da ten sam wynik, a zapis do jednego z nich zaktualizuje cel.
mysql
postgresql
użytkownik50849
źródło
źródło
Odpowiedzi:
O ile mi wiadomo, nowy Postgresql umożliwia
INSTEAD OF
uruchamianie widoków. Tak więc posiadanie jednego stołu, jednego widoku jakoSELECT * FROM table1
iINSTEAD OF
wyzwalaczainsert, update, delete
powinno działać dla Ciebie. Takie podejście nie zadziała jednak w MySQLźródło
W MySQL (tylko przy użyciu silnika pamięci MyISAM) możliwe jest tworzenie tabeli od zera za pomocą dowiązań symbolicznych. Jest to możliwe w Linuksie i Windowsie (przy użyciu twardych linków):
Oto moje poprzednie posty na ten temat
Jednak to, co proponujesz, musiałoby być zrobione poza MySQL w Linuksie.
Dla tego przykładu
KROK 01) Utwórz tabelę 1
KROK 02) Utwórz trzy dowiązania symboliczne, aby naśladować Tabela B
KROK 03) Spróbuj wstawić do tabeli 1 i czytać z tabeli 2. Następnie spróbuj odwrotnie.
Jeśli wszystko zachowuje się normalnie, możesz to zrobić w ten sposób.
CAVEAT
źródło