я должен создать другую таблицу для 0 или 1 записей? - PullRequest
2 голосов
/ 22 февраля 2010

У меня есть таблица payment_types, в которой вы можете ввести различные типы платежей, такие как прямой дебет, кредитная карта, кредитная карта в файле и т. Д. Для события. Для каждого типа платежа вы можете указать, разрешать ли пользователю платеж в рассрочку, а также какие даты начала и окончания и количество платежей ему следует разрешить. Должна ли я иметь отдельную таблицу «Рассрочка», которая ссылается на тип_платы, так как вы можете произвести оплату без рассрочки? Или я должен просто оставить эти столбцы рассрочки пустыми в таблице payment_types на случай, если рассрочка не разрешена?

изменить: даты начала и окончания, указанные выше, относятся к рассрочке, а не к типу платежа. Сам тип платежа не будет иметь никаких диапазонов дат, поскольку само событие будет иметь диапазон дат.

Ответы [ 2 ]

1 голос
/ 22 февраля 2010

Поскольку информация об установке (разрешено ли и даты) привязана к виду оплаты, я бы поместил их в одну таблицу. Кроме того, я не буду использовать отдельный флаг для того, разрешены ли установленные или нет. Если дата начала и окончания равна NULL, то рассрочка не допускается. Если вы используете отдельное поле, вы можете получить неправильную дату (т. Е. Флаг рассрочки равен 0, но даты не равны нулю)

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

0 голосов
/ 22 февраля 2010

Поместите информацию о взносе в таблицу типов платежей, если платежи не могут иметь более одного типа диапазона дат. Если существует более одного типа диапазона дат (например, один раз в месяц, более 6 месяцев). Если он может тогда положить его в свой собственный стол. Если вы положите его в свой собственный стол, то у вас будет только 2 FK из основного стола, 1 для вашего типа оплаты и 1 для вашего графика платежей. Если график платежей FK равен нулю, вы должны знать, что это однократный платеж. Это означает, что вы не должны дублировать свой флаг, показывающий, есть ли график платежей или нет в основной таблице платежей. Это уменьшит дублирование и ошибки.

...