Верно и неправильно не являются абсолютными. При этом, вот мое мнение о вашей модели:
1) Вы уверены, что покупки и продажи должны быть двумя разными таблицами? У них одинаковые поля. Сделайте их одним и добавьте поле, которое определяет, будет ли это покупка или продажа.
2) Тот факт, что таблица запасов имеет те же ключи (склад, товар), что и таблица продаж / покупок, запасов и переносов, не делает ее логической центральной таблицей. Мой дизайн будет:
- Таблицы штрих-кодов, предметов, складов, как они у вас уже есть.
- Остальные таблицы должны иметь внешние ключи для предметов, складов или обоих, независимо от того, что существует. Нет причин делать FK с двумя полями к таблице складских мест
- Для позиции переноса должны быть указаны и склады_от склада, и склад_склады на ФК. И вещь, конечно.