Понастоящем нашата база данни е настроена така, че платежните транзакции записват идентификатор на тип плащане и това се свързва с таблица с тип плащане (в брой, чек, кредит), която съдържа тези стойности. Пример:
Платежна транзакция:
- ID
- Количество
- Дата
- ID на вида на плащането
Начин на плащане:
- ID
- Тип плащане (в брой, кредит)
Въпросът ми е дали трябва просто да премахна или не таблицата с типа плащане и просто да запазя стойността на типа плащане като текст в платежната транзакция.
Това е подобно на този въпрос . с изключение на видовете плащане е доста сигурно, че никога няма да е необходимо да се добавят данни за всеки тип плащане. „Кеш“ не се свързва с нищо, няма нищо, което трябва да знам за самия Кеш, просто е.
Доколкото мога да преценя, предимствата и недостатъците на замяната на таблицата за тип плащане с едно поле биха били:
Плюсове
- Премахва най-вече ненужното присъединяване, когато трябва да се намери тип плащане.
- Типът плащане за дадена транзакция винаги ще отразява точно това, което е било към момента на записване на транзакцията. т.е. ако променя записа „В брой“ в таблицата с видовете плащания на „Кредит“ (по каквато и да е причина), всички платежни транзакции, които се свързват с Пари в брой, вече ще бъдат свързани с Кредит.
Против
- Съхраняването на типа плащане като текстово поле ще забави сортирането по вид плащане и ще направи това сортиране малко по-объркано, отколкото е сега.
- Типът плащане за дадена транзакция винаги ще отразява точно това, което е било към момента на записване на транзакцията. т.е. ако имах правописна грешка и типът плащане беше съхранен като „Кеш“, лесно бих могъл да поправя тази печатна грешка и всички транзакции, които се свързват с този тип плащане, автоматично ще бъдат актуализирани.
Склонен съм към премахване на таблицата с типове плащане и добавяне на едно поле към таблицата с платежни транзакции, какво препоръчвате да бъде най-добрият курс на действие?