PHP/PostgreSQL - сайт с платени статии въпрос номер 2?

ghostbg

Registered
http://web-tourist.net/forum/viewtopic.php?t=90464 - предишна тема
Не ми е ясно как точно да ги записвам цените в базата която е PostgreSQL с integer, money, real или numeric тип това е едно другото е как даден потребител след като плати да проверявам, че има достъп до точно определената статия за която си е платил ?

Нещо логиката не мога да я измисля както трябва.
Моя е грешката, че не добавих. Можеш да записваш всички потребители, които са си платили в едно друго поле(или само ид - тата им).
Понеже в другата тема дадох точката и сега не ми дава да пиша в нея а се сетих че по този начин които ми каза мисля че няма да стане защото ако примерно 200 човека си платят да видят статията как ще запиша на 200-та човека ИД-тата в таблицата на статиите и после да правя проверка дали ИДто на даден потребител е записано?

Здравейте, имам едно голямо предизвикателство трябва да създам сайт в които някой статии ще са платени.
 
Ами в таблицата за потребителите се направи едно поле pay, което по дефълт му даваш нула и ако си плати променяш стойността на 1, след това правиш проверка за която статия ти трябва и ако е 1 пускаш, ако е 0 изписва, че трябва премиум достъп...
 
Аха но така не е ли същото ако си плати за 1 статия и полето стане 1-ца така ще има достъп до всички платени статии защото полето е станало 1-ца и е минало проверката?
 
Да..
Е ти за всяка статия ли ще ги караш да плащат поотделно? :D
Ами пробвай с бисквитки, но по-добрия вариянт е оптимизиране на кода за по-бърза работа и запис в БД...
 
Да всяка статия отделно ще се плаща и с различни суми ще са. Какво имаш в предвид оптимизиране на кода? Аз в момента го пиша сайта и не е нужно оптимизиране а написване :)
 
Тогава го направи с бисквитки.
Дори сега да го пишеш, ако използваш варианта със записване в БД, тогава просто бързината ще е от голямо значение и ще трябва да товалиш минимално сървъра за да става по-бързо.
 
Първо - ако целта ти е регистрираните потребители да могат да четат статия след като са платили и тази статия да бъде достъпна само за тях може да направиш следното нещо.

Когато потребител влезе успешно в акаунта си правиш сесия, в която записваш всички статии, които той има право да чете (т.е. тези, за които е платил). След това правиш проста проверка - ако ID-то на статията съвпада с някое от ID-тата, които са записани във сесията, значи той има право да чете статията. При всички други случаи той няма право да чете.
 
А идеята за базата данни е следната
CREATE TABLE `user_have_priv` (
`uId` INT(10) NOT NULL,
`sId` INT(10) NOT NULL,
`exp` INT(10) NOT NULL
);
съвсем базово
uId - ИД-то на потребителя
sId - ИД-то на статията
exp - евентуално, ако има някаква 'годност', но може и без това поле

А това с бисквитките изобщо не е добра идея, особено като става дума за боравене с пари.
 

Back
Горе