Potrzebuję przechowywać wartości tabeli krzyżowej kursów wymiany walut (np. http://www.exchangerates.org.uk/currency/currency-exchange-rates-table.html) za pomocą RDBMS, MySql w moim przypadku.Projektuj i przechowuj kursy wymiany walut Tabela krzyżowa
Użytkownik codziennie będzie aktualizował dane, a system będzie zapisywać różne wersje.
Zastanawiam się, jak zaprojektować stoły lub jeśli chcesz modeli.
Najprostszym sposobem jest, oczywiście, stosując tabelę z, do i wartości kolumn
from: char(3)
to: char(3)
value: decimal(6,4)
inverse_value: decimal(6,4)
ale chciałbym wiedzieć, czy istnieją inne (lepsze) rozwiązania.
Wielkie dzięki.
EDIT
przepraszam jeśli nie było jasne, ale jestem szczególnie zainteresowany występów i skalowalności.
Utrzymując strukturę wartość/inverse_value i biorąc pod uwagę 90 walut, tabela krzyżowa wymiany walut wymagałaby 4 050 rekordów dziennie.
Jeśli nowa wersja jest tworzona każdego dnia, w ciągu jednego roku pojawi się 1 478,250 rekordów, a zapytania będą mogły cierpieć na.
Zaimplementowałem tabelę i działa dobrze, renderowanie tabeli krzyżowej jest dość szybkie i jestem z niej zadowolony.
Po prostu zastanawiałem się, czy istnieje lepszy sposób realizacji tego.
Cóż, byłbym nieco ostrożny o zi na polach. Możesz chcieć, aby inny identyfikator był połączony z char (3), jeśli ma być użyty na jakimkolwiek wyświetlaczu (nie chcesz zepsuć indeksu, jeśli twój wyświetlacz się zmieni). Poza tym ... po co są wartości i inverse_value? Osobiście po prostu używam, od, i oceniam. – RonaldBarzell
Tak, schemat był tylko uproszczoną wersją, w moim przypadku mam dodatkową tabelę dla walut z liczbami całkowitymi. Również wartość inverse_value jest potrzebna, ponieważ liczby mogą być różne. –
Czy istnieje szansa na przyznanie punktu jednej z odpowiedzi? – Ewen