- Логика за таблица и показване на резултати
12
WT форуми -> PHP MySQL ASP.NET -> Логика за таблица и показване на резултати
Създайте нова тема Напишете отговор 
Автор Съобщение
typeface
Нов
Нов

Регистриран на: 24/08/2017 6:24 am

Support: 0
Bonus: 0
Мнения: 10
Мнение 24/08/2017 6:38 am     Логика за таблица и показване на резултати Отговорете с цитат


Здравейте,

Извинявам се за заглавието, но не можах да измисля как точно да го напиша. Моля някой, който има права ако сметне за нужно да го редактира. Та на въпроса:

Имам проста HTML таблица с 2 колони: хора | цена

На сйта се визуализира така:


Брой хора | Цена
    1                  $2
    2                  $3
    ..                  ..
    9                  $500

Особеното тук е, че лявата колона "Брой хора" няма да се променя и винаги ще е от 1 до 9. Юзъра ще има право да си променя само цената.

Моля, за помощт при логиката и създаването на таблиците в базата данни. В момента имам таблица "users", която логично държи юзърите.

Предполагам трябва да си направя втора таблица "rates" примерно, която да държи цената. Как би станало, какви колони да съдържа?

В случая трудното ми е как тази колона, която няма да се променят стойностите ще отговаря на другата и как да я вържа да показва данните за съответния потребител.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 144
Bonus: 287
Мнения: 1329
Мнение 24/08/2017 12:10 pm      Отговорете с цитат


Всеки юзър трябва си има собствено копие на таблицата, която си дал ли?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
typeface
Нов
Нов

Регистриран на: 24/08/2017 6:24 am

Support: 0
Bonus: 0
Мнения: 10
Мнение 24/08/2017 12:37 pm      Отговорете с цитат


anonimen написа:
Всеки юзър трябва си има собствено копие на таблицата, която си дал ли?

Да, и да може да си променя само цените в колона 'Цена"
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 144
Bonus: 287
Мнения: 1329
Мнение 24/08/2017 1:01 pm      Отговорете с цитат


typeface написа:
anonimen написа:
Всеки юзър трябва си има собствено копие на таблицата, която си дал ли?

Да, и да може да си променя само цените в колона 'Цена"


В rates във всеки запис ще държиш цената за двойка юзър/брой хора.

Т.е. за примерно user 5/8 people ще държиш цена $10.

Вече мисля, че е очевидно - трябват ти три колони. Потребител, брой хора и цена.
Когато потребител 2 редактира цената за 3ма души на 14, в базата ще ъпдейтваш съответния запис:

UPDATE rates SET price=14 WHERE user_id = 2 AND number_of_people = 3
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
typeface
Нов
Нов

Регистриран на: 24/08/2017 6:24 am

Support: 0
Bonus: 0
Мнения: 10
Мнение 24/08/2017 1:18 pm      Отговорете с цитат


anonimen написа:


Т.е. за примерно user 5/8 people ще държиш цена $10.

Вече мисля, че е очевидно - трябват ти три колони. Потребител, брой хора и цена.


Не съм сигурен, че разбирам. Т.е. предлагаш това?


user_id     |        number_of_people          |       price
     1                                    1                                    1
     1                                    2                                    10
   ....                                  .......                                ......
     1                                      9                                   100
     2                                      1                                     5
     ...
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 144
Bonus: 287
Мнения: 1329
Мнение 24/08/2017 4:29 pm      Отговорете с цитат


Да, защо? Не работи ли?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 144
Bonus: 287
Мнения: 1329
Мнение 24/08/2017 4:39 pm      Отговорете с цитат


Разбира се аз бих държал само по 1 ст-ст за всеки юзър, като за различен брой хора автоматично ще смятам цената. Защо да държа 10 стойности ако мога да държа 1?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
typeface
Нов
Нов

Регистриран на: 24/08/2017 6:24 am

Support: 0
Bonus: 0
Мнения: 10
Мнение 24/08/2017 5:38 pm      Отговорете с цитат


anonimen написа:
Разбира се аз бих държал само по 1 ст-ст за всеки юзър, като за различен брой хора автоматично ще смятам цената. Защо да държа 10 стойности ако мога да държа 1?

А това как би станало? В смисъл тя цената няма как да се смята, защото е динамична и юзъра си определя. Няма как да знам че Цена 1 + Цена 2 ще даде Цена 3
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 144
Bonus: 287
Мнения: 1329
Мнение 24/08/2017 8:24 pm      Отговорете с цитат


typeface написа:
anonimen написа:
Разбира се аз бих държал само по 1 ст-ст за всеки юзър, като за различен брой хора автоматично ще смятам цената. Защо да държа 10 стойности ако мога да държа 1?

А това как би станало? В смисъл тя цената няма как да се смята, защото е динамична и юзъра си определя. Няма как да знам че Цена 1 + Цена 2 ще даде Цена 3

T.е. ще караш юзера ръчно да си въвежда всяка стойност по отделно? И така за 10 човека? А ако в последствие решиш да са 30? Или 100?

По-скоро въвежда цена за 1 човек и останалото се смята автоматично. Ако иска да има някакво намаление при повече хора, може да добавиш и такава опция, но да държиш по 10 (или 50) повтарящи се записа за всеки юзер е леко казано излишно.

Не вярвам да имаш потребител, за който 1 човек ще струва 5, а 2ма ще струват 4 примерно.

Последната промяна е направена от anonimen на 28/08/2017 1:43 pm; мнението е било променяно общо 2 пъти
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
typeface
Нов
Нов

Регистриран на: 24/08/2017 6:24 am

Support: 0
Bonus: 0
Мнения: 10
Мнение 25/08/2017 6:54 am      Отговорете с цитат


Благодаря за помощта до тук, но явно нещо не успявам да те разбера. Може ли малък пример на структурата?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 144
Bonus: 287
Мнения: 1329
Мнение 25/08/2017 9:48 am      Отговорете с цитат


typeface написа:
Благодаря за помощта до тук, но явно нещо не успявам да те разбера. Може ли малък пример на структурата?


table users
- int id
- каквито полета още ти трябват

table prices
- int user_id
- int number_of_people
- int price
PRIMARY KEY(user_id, number_of_people) -- по този начин осигуряваш двойките user/NoP да са уникални


Ако ще го правиш само с по 1 стойност per user, няма да ти трябва отделна таблица, просто записваш единствената цена в ново поле в users таблицата. Т.е. за всеки юзър в таблицата users имаш поле price, в което ще записваш цената за 1 човек, избрана от съответния юзър.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
typeface
Нов
Нов

Регистриран на: 24/08/2017 6:24 am

Support: 0
Bonus: 0
Мнения: 10
Мнение 25/08/2017 3:16 pm      Отговорете с цитат


Tоест така:
Логика за таблица и показване на ре

За рейтовете/цената, а понеже брой хора е винаги еднаква стойност може и да не я вкарвам в базата данни си мисля?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
12
Страница 1 от 2


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети