Лучший подход к дизайну нашей базы данных - PullRequest
2 голосов
/ 27 февраля 2011

У нас есть база данных для приложения электронной коммерции, мы работаем с JPA 2.0.

У нас есть три таблицы: товары (идентификатор, код, название, описание, цена); soldproducts (идентификатор, количество, идентификатор продукта); заказы (идентификатор, дата, статус, комментарий).

Вот наша проблема: когда мы удаляем продукт из таблицы продуктов, у нас возникает проблема ограничения в soldproducts, потому что столбец product_id ссылается на продукт. Мы хотим удалить продукт, но хотим получить доступ к информации о продуктах.

Мы хотим добавить дополнительный столбец в таблицу продуктов, что-то вроде доступности, которое сообщает нам, доступен ли продукт или нет. При таком подходе, если мы удаляем продукт из приложения, а продукт не ссылается на проданные продукты, мы просто обновляем этот дополнительный столбец до недоступного, мы не удаляем его. В противном случае мы удаляем товар из таблицы. Но мы не уверены, что это лучший подход.

Как вы думаете, каков наилучший подход к проектированию в данной ситуации?

1 Ответ

5 голосов
/ 27 февраля 2011

На мой взгляд, наилучшим подходом к дизайну является не удалять строку продукта , а пометить как удаленную.Вам нужно будет добавить логический столбец deleted или active в вашу таблицу.

Это то, что обычно делается в этой ситуации на большинстве систем, над которыми я работал / работал.Конечно, вам нужно будет фильтровать ваш запрос products по продуктам active (не deleted) каждый раз.Но это единственный способ не потерять ссылки на исторические данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...