Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #2  
Старый 01.04.2010, 06:11
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,111
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тебе нужна БД. В принципе, можно обойтись, но с БД будет проще.
В БД будет 2 таблички. Первая [PEOPLE] - список группы, состоит из 2х полей: ID (идннтификатор, целое, автоинкремент) и Name (имя студента, строковое). Вторая табличка [GUEST_LOG] будет тоже из 2х полей. В ней будем хранить информацию о том, кто у кого побывал в гостях. Она тоже состоит из 2х полей: HOLDER_ID (целое, ссылка на студента-хозяина) и GUEST_ID (целое, ссылка на студента-гостя) /ссылки указывают на поле ID из первой таблицы/.

Теперь о том, как получить список студентов, побывавших в гостях у всех. Тут есть несколько методов решешения. Объясню наиболее понятный и простой.

Что значит в нашей архитектуре, что человек побывал у всех в гостях? Это значит, что во второй таблице для него как GUIST_ID будет N записей. При этом, N будет равно кол-ву студентов группы (т.е. кол-ву записей в первой табличке) минус 1 (сам у себя в гостях не побываешь).
Соотвсетсвенно, можно сделать такой запрос:
Код:
SELECT P.NAME, COUNT(P.ID) FROM PEOPLE P LEFT JOIN GUEST_LOG G ON P.ID = G.GUEST_ID
GROUP BY P.NAME
Получим список студентов с кол-вом гостевых визитов. А теперь осталось сравнить это кол-во с общим числом студентов и оствить список.

ЗЫ. Это можно сделать одним запросом, но для новичка будет слишком сложно.

ЗЗЫ. То же самое можно легко сделать и без БД, но писать придется больше.

ЗЗЗЫ. Хочешь готовую программу - велкам в раздел "Работа".
Ответить с цитированием
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025