База данных ссылается на несколько типов объектов из одной таблицы - PullRequest
0 голосов
/ 17 марта 2012

Итак, я создаю таблицу базы данных транзакция для хранения транзакций между продавцом и покупателем.

Иногда покупатель платит картой магазина и другие случаи с кредитной картой (наличные не используются в этой системе).

Как мне смоделировать это в базе данных.В настоящее время я думаю, что в таблице транзакций есть поле для транзакции по кредитной карте и одно для транзакции по кредитной карте .Затем эти поля будут ссылаться на две отдельные таблицы для хранения данных, специфичных для метода оплаты.

Это означает, что одно из этих полей всегда будет нулевым, а другое - ссылкой на соответствующую таблицу метода оплаты.

Пример: Транзакция была завершена с кредитной картой 1024 *, а не с картой магазина .Это означает, что в таблице транзакция поле карта магазина равно нулю, а поле кредитная карта содержит ссылку на транзакцию по кредитной карте стол.В этой таблице транзакции по кредитной карте хранятся данные, относящиеся к транзакции по кредитной карте, например код авторизации , идентификатор транзакции и т. Д.

Причина, по которой яЯ запутался, потому что меня учили в колледже, что значения NULL плохие.Но разве это не тот случай, когда они требуются.

Есть ли термин для проблемы такого типа или какой запрос я должен использовать, чтобы сопоставить его в Google?

Большое спасибо, Конор.

1 Ответ

1 голос
/ 17 марта 2012

Не используйте два поля номера карты

Номер карты должен быть одним столбцом и содержать любой номер карты из любой транзакции.Где-то в системе должна быть другая таблица, которая отслеживает, какие «карты магазина» были выпущены.Объединение таблицы транзакций с таблицей «Карточка магазина» идентифицирует, какие транзакции были выполнены с использованием карточек магазина, а какие - с использованием кредитных карточек.

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