Ответ на сообщение Помогите с задачкой ;) пользователя AKIRO2
Ответ на сообщение Помогите с задачкой ;) пользователя AKIRO2
Ответ на сообщение Re: Помогите с задачкой ;) пользователя KSergey
Ответ на сообщение Re: Помогите с задачкой ;) пользователя IEEE
Ответ на сообщение Re: Помогите с задачкой ;) пользователя AKIRO2
Ответ на сообщение Помогите с задачкой ;) пользователя AKIRO2
Ответ на сообщение Re: Помогите с задачкой ;) пользователя AKIRO2
Сделайте нормализацию БД, т.е. реквезиты клиента в одной таблице, дата по оплате, в другой, связь по коду. - вы предлагаете на две таблицы клиентов разделить: "Живые" и "Мертвые"?
клиент сегодня действующий, завтра нет, через месяц снова действующий...
А может завести еще одну таблицу, куда складывать записи дат с кодом у которых 30 дней истекло и раз в сутки скриптом туда загонять данные из таблицы живых ? Тогда выборка будет максимально быстрой. а может атрибут прицеплять к ФИО? если дата.оплата <=30, то - "живой" клиент, нет - "умер".
Knowledge itself is a power (F.Bacon)
Ответ на сообщение Re: Помогите с задачкой ;) пользователя Mozepiy
Интересно, как это поможет в данной задаче? да и что тут ненормализировано на ваш взгляд? (ну вот буквально в указанной постановке)? Сделайте нормализацию БД, т.е. реквезиты клиента в одной таблице, дата по оплате, в другой, связь по коду.
И быть завязанным на стабильность работы скрипта, т.е. некой обертки. А может завести еще одну таблицу, куда складывать записи дат с кодом у которых 30 дней истекло и раз в сутки скриптом туда загонять данные из таблицы живых ? Тогда выборка будет максимально быстрой.
Ответ на сообщение Re: Помогите с задачкой ;) пользователя AKIRO2
Оплат-то несколько, надо выбирать последнюю по времени. а может атрибут прицеплять к ФИО? если дата.оплата <=30, то - "живой" клиент, нет - "умер".
Вы что же, каждые 5 минут будете такие запросы выполнять?? Задача: максимально быструю выборку сделать.
Ответ на сообщение Помогите с задачкой ;) пользователя KSergey
Почитайте для начала про нормализацию реляционных БД. Тогда, возможно, вопросы отпадут сами собой. Интересно, как это поможет в данной задаче? да и что тут ненормализировано на ваш взгляд?
Точно также, как от ввода данных об оплате, блокирующие работу клиента при неоплате etc... И быть завязанным на стабильность работы скрипта, т.е. некой обертки.
А если строк не десять тыщь, а десять миллионов, да причем в ненормализованной базе, время выборки будет караул просто. Задача вполне решается одним запросом.
В нормализованной базе, какраз, ничего удалять ненужно, будем иметь полную историю, и актуальность текущих клиентов. Тем более, что клиент вполне может и "ожить", значит надо из списка "мертвых" его удалять не забыть.
Knowledge itself is a power (F.Bacon)
Ответ на сообщение Re: Помогите с задачкой ;) пользователя Mozepiy
Еще раз: напишите где в данной постановке отсутствие нормализации. Почитайте для начала про нормализацию реляционных БД. Тогда, возможно, вопросы отпадут сами собой.
Отсюда поподробнее, пожалуйста. Что за такая структура должна для этого быть? я что-то пропустил, вероятно, в ваших ответах. В нормализованной базе, какраз, ничего удалять ненужно, будем иметь полную историю, и актуальность текущих клиентов.
Ответ на сообщение Re: Помогите с задачкой ;) пользователя KSergey
Автор в первом посте писал: Еще раз: напишите где в данной постановке отсутствие нормализации.
Данная БД есть ненормализованная, т.к. ФИО клиента будет с некоей переодичностью повотрятся, для номализации, как я уже предлагал выше, нужно в БД создать 2 таблицы, 1-я - реквезиты клиента, 2-я - дата оплаты. При каждой оплате, автоматически, в базу данных заносится НОВАЯ строчка, которая включает в себя, ФИО Клиента и дату.
Какраз таки надо, многих вопросов у вас невозниклобы, знай вы хотябы азы теории. Из ваших постов я вижу, что теорию вы незнаете вообще, и через это вести конструктивный диалог, крайне затруднительно. Посылать не надо. Нечего ответить - так и скажите.
Да кудауж подробней. Имеем 3 таблицы. 1-я ФИО, 2-я у кого срок после оплаты непревышет 30 дней, 3-я у кого срок оплаты превысел 30 дней. Отсюда поподробнее, пожалуйста.
Knowledge itself is a power (F.Bacon)
Ответ на сообщение Re: Помогите с задачкой ;) пользователя Mozepiy
Т.е. повторяющийся ID вы не считаете деноормальзацией, а ФИО (нигде не написано, что это несколько полей) - считаете? удивительно. Данная БД есть ненормализованная, т.к. ФИО клиента будет с некоей переодичностью повотрятся, для номализации, как я уже предлагал выше, нужно в БД создать 2 таблицы, 1-я - реквезиты клиента, 2-я - дата оплаты.
У вас удивительное представление о нормализации данных и структуре таблиц. Мне действительно до вашей теоретической подкованности как до луны. Да кудауж подробней. Имеем 3 таблицы. 1-я ФИО, 2-я у кого срок после оплаты непревышет 30 дней, 3-я у кого срок оплаты превысел 30 дней.
Для истории платежей, ели требуется, работает с первой и третьей таблицами.
Только честно: вы про JOIN таблицы с самой собой в курсе? Для выборки всех клиентов с отключенной услугой, достаточно выбрать всех из первой таблицы, невошедших во вторую.
Ответ на сообщение Re: Помогите с задачкой ;) пользователя KSergey
После этой фразы, продолжать с вами дискуссию, считаю, бессмысленно. Т.е. повторяющийся ID вы не считаете деноормальзацией
Knowledge itself is a power (F.Bacon)
Ответ на сообщение Re: Помогите с задачкой ;) пользователя Mozepiy
Ответ на сообщение Re: Помогите с задачкой ;) пользователя KSergey
Я понял, что вы так и неудосужились ознакомится с теорией, раз так, то и продолжать бессмысленно. Я рад, что вы поняли некорректность ваших суждений.
Knowledge itself is a power (F.Bacon)
Ответ на сообщение Re: Помогите с задачкой ;) пользователя Mozepiy
Ответ на сообщение Re: Помогите с задачкой ;) пользователя KSergey
Knowledge itself is a power (F.Bacon)
Ответ на сообщение Re: Помогите с задачкой ;) пользователя Mozepiy
Ответ на сообщение Re: Помогите с задачкой ;) пользователя KSergey
Ответ на сообщение Re: Помогите с задачкой ;) пользователя AKIRO2
А если за 5? а за 12? а если клиент предоплату внес за 3 месяца?
И что? есть повторы ID клиентов. таблица ФИО привязывается с таблицей оплаты - тогда нет повторов ФИО клиентов
Я бы назвал это "количество оплаченных дней". Ибо клиент как таковой по истечении их не умирает, хоть сервис ему и перестают предлставлять. тогда нужно наверно ввести не 30 дней, а "срок жизни" клиента, например: 90 дней
Ответ на сообщение Re: Помогите с задачкой ;) пользователя KSergey
ID могут (и должны) повторяться. таблица ФИО привязывается с таблицей оплаты - тогда нет повторов ФИО клиентов
И что? есть повторы ID клиентов.
Ответ на сообщение Re: Помогите с задачкой ;) пользователя Anomander
Вы первый топик перечитайте. Уникальное ФИО на первый взгляд сойдет за ID. А на второй - я бы дал по рукам, кто так делает. Разведутся разные "Сергей Иванов", "Иванов Сергей" и "Иванов Сергей Иванович".
Ответ на сообщение Re: Помогите с задачкой ;) пользователя KSergey
Если вопрос сугубо академический, то вы правы, уважаемый коллега. Вы первый топик перечитайте.
В условиях задачи было "поле ФИО", а вопрос сформулирован "как сделать выборку", а не как реорганизовать структуру БД.
Ответ на сообщение Помогите с задачкой ;) пользователя AKIRO2
Ответ на сообщение Помогите с задачкой ;) пользователя AKIRO2