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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.01.2016, 14:04
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию Список пользователей в одну колонку

Подскажите как реализовать такую вещь.
Программа для участия в турнирах. пользователи регистрируются в турнирах, после чего в таблицу mysql (думаю в одну колонку) нужно заносить зарегистрированных пользователей (через запятую например). А также нужно будет вытащить количество зарегистрированных участиков в турнире. но ничего не выходит. помогите плиз
Ответить с цитированием
  #2  
Старый 09.01.2016, 14:58
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Без структуры вашей БД, я могу много чего предложить. Схемку БД прикрепите в виде картинки к сообщению - тогда может чего умное и посоветуем.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 09.01.2016, 15:18
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Структура самая простая. Есть таблица с датой начала турнира, названием и т. д. Также в ней есть одна колонка куда должны будут записываться логины пользователей, которые нажмут на кнопку "Зарегистрироваться". Вобщем это судя по всему возможно сделать только через массив, например при нажатии пользователем на кнопку "Зарегистрироваться" вытаскиваем из этого массива все логины, добавляем еще логин пользователя который зарегался и переписываем в колонку
Ответить с цитированием
  #4  
Старый 09.01.2016, 23:02
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,051
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Руки оторвать за такой дизайн. Учим связь один-ко-многим.
Код:
create table TOURNIRS
(
id integer prymary key,  -- посмотри как сделать его autoincrement
name varchar(80),
beginDate date
);

create table USERS
(
id integer  prymary key,  -- посмотри как сделать его autoincrement
name varchar(250),
login varchar(20),
tournir_id integer references TOURNIRS.ID
);
Тогда можно каждого юзера добавлять отдельной строкой, а получить их список простым запросом.
Ответить с цитированием
  #5  
Старый 10.01.2016, 11:21
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

в таком случае пользователь сможет зарегаться только в одном турнире.
Реализовал немного по другому. При регистрации нового пользователя в таблице Tournaments создается поле с логином юзера. И таким макаром для ID каждого турнира есть возможность поставить отметку зареган пользователь или нет. Всем спасибо
Ответить с цитированием
  #6  
Старый 10.01.2016, 12:03
Vocabulary Vocabulary вне форума
Новичок
 
Регистрация: 17.09.2009
Сообщения: 85
Репутация: 9
По умолчанию

Цитата:
в таблице Tournaments создается поле с логином юзера
Понятно, что автор не в теме.
Учим связь многие-ко-многим.
Код:
create table Tournaments
(
ID integer prymary key,  
name varchar(80),
beginDate date
);
 
create table Users
(
ID integer  prymary key, 
name varchar(250),
login varchar(20),
);

create table UsersAtTournaments
(
ID integer  prymary key,  
User_id integer references User.ID,
Tournament_id integer references Tournaments.ID
);
Ответить с цитированием
  #7  
Старый 10.01.2016, 13:33
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vocabulary
Понятно, что автор не в теме.
Учим связь многие-ко-многим.
Код:
create table Tournaments
(
ID integer prymary key,  
name varchar(80),
beginDate date
);
 
create table Users
(
ID integer  prymary key, 
name varchar(250),
login varchar(20),
);

create table UsersAtTournaments
(
ID integer  prymary key,  
User_id integer references User.ID,
Tournament_id integer references Tournaments.ID
);

не пойму смысла с этого, ну допустим в одной колонке получится айди турнира, а во второй айди юзера. И что с этого? Нужно чтоб заносилась инфа зарегистрирован юзер или нет
Ответить с цитированием
  #8  
Старый 10.01.2016, 13:48
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Есть базовые принципы организации реляционной базы данных:
Табличка Users ничего кроме информации о пользователях содержать не должна.
Табличка Tournaments ничего кроме сведений о турнире содержать не должна.
Но нам нужно Пользователя зарегистрировать в Турнире, следовательно нужна третья табличка UsersAtTournaments, которая позволит нам без ограничений регистрировать любого пользователя на любом турнире.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
chellas88 (10.01.2016)
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter