Czy kolumny dotyczące cen powinny się znaleźć zarówno w tabeli "ksiazka", "pozycjeFaktury", jak u "faktura"?
Cena produktu może się zmienić z czasem (np wyprzedaż). Cena na fakturze nie.
Jeśli sumę na fakturze można wywnioskować z sumy pozycji faktury, to można by się zastanowić nad pozbyciem się tej duplikacji.
Natomiast nie rozumiem kolumn "wydawnictwo_id1", "ksiazka_wydawnictwo_id1" etc. To jakieś przypadkowe przeoczenie? Podobnie, "pracownik_kontakt_id" na fakturze wydają się dziwne.
Zamiast pary "czyPrzyjeto", "dataPrzyjecia" etc można się zastanowić nad jedną nullowalną kolumną. Alternatywnie, kolumna "stan zamówienia" z wartością enumerowalną w środku (co zazwyczaj bardziej odpowiada rzeczywistym interfejsom sklepów).
Ale same relacje wyglądają rozsądnie.
O, właśnie, brakuje koszyka? ;) Chyba że chcesz traktować zamówienie jak tymczasowy koszyk.