Схема базы данных торговых точек и запасов

Я пытаюсь создать базовый Система управления торговыми точками и запасами.

Некоторые вещи, которые следует учитывать:

  • Продукты всегда имеют один и тот же (один и тот же идентификатор)во всей системе, но инвентарные (доступные для продажи единицы продукта)уникальны для каждого местоположения. В обоих местах Y и Z могут быть выставлены на продажу единицы продукта X, но если, например, две единицы продаются в местоположении Y, это не должно повлиять на запасы в местоположении Z. Снабженные подразделения до сих пор не повреждены.
  • Продажа одной (1)единицы продукта X из местоположения Y означает, что запасы в местоположении Y должны вычесть одну единицу из его запасов.

Исходя из этого, я подумал об этих таблицах:

  • местоположения

    • идентификатор
    • имя
  • продукты

    • идентификатор
    • имя
  • транзакции

    • идентификатор
    • описание
  • запасы _заголовок

    • идентификатор
    • местоположение _идентификатор
    • продукт _идентификатор
  • запасы _деталь

    • запасы _идентификатор
    • транзакция _идентификатор
    • единица_стоимость
    • единица_цена
    • количество
  • заказы_заголовок

    • идентификатор
    • дата
    • итог (рассчитано из заказов_подробно количество *цена; только для будущей проверки данных)
  • заказы_детали

    • заказ_id
    • транзакция_id
    • продукт_id
    • количество
    • цена

Хорошо, так есть вопросы? Конечно.

  1. Как отслеживать изменения стоимости единиц? Если когда-нибудь я начну платить больше за определенный продукт, мне нужно будет каким-то образом отслеживать предельную полезность ((cost*quantity) - (price*quantity) = marginal utility). Я думал об описях_в основном для этого. Меня бы это не волновало.
  2. Хорошо ли налажены отношения? Мне до сих пор трудно понять, есть ли в локациях инвентарь, или инвентарь имеет несколько локаций. Это сводит с ума.
  3. Как бы вы сохранили/узнали свой текущий уровень запасов? Поскольку мне пришлось отделить таблицу запасов, чтобы не отставать от обновлений стоимости, я думаю, мне просто нужно было бы сложить все количества, указанные в деталях запасов_.
  4. Хотите поделиться предложениями?

Я уверен, что у меня еще остались вопросы, но в основном это те, на которые мне нужно ответить. Кроме того, поскольку я использую Ruby on Rails в первый раз, на самом деле, в качестве учебного опыта, стыдно останавливаться на дизайне, не позволяя мне быстрее завершить реализацию, но я думаю, что так и должно быть.

Заранее спасибо.

13
задан Andrés Botero 6 April 2012 в 00:08
поделиться