Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли создать такую таблицу? [D7]


3APA3A ©   (2003-09-19 23:56:00) 

Нужна такая таблица
Имя ID_1
ID_2
ID_3
ID_4
....
ID_N

Имя ID_1
ID_2
....
ID_M
Некоторый аналог этого:
type Rec=record
Name:ShortString;
ID:array of integer;
end.
Таблица должна быть Paradox"овская... можно ли это реализовать и если можно, то как?


Zacho   (2003-09-20 00:32:00) [1]


> 3APA3A © (20.09.03 00:16) [2]
> Да я все понимаю, что крайне невыгодно делать БД с разной
> длиной записей, хотя бы из-за скорости доступа к такой БД.
> Но меня совершенно не интересуют накладные расходы

Нет, не понимаешь. Дело не в накладных расходах, а в целостности данных. Все-таки, почитай что-нибудь про нормализацию.

> Суть такова (это не то что мне надо, но если скажете это
> - все будет ясно)
> Телефонная книга.Возможность создания клиента с именем.
> На каждое имя можно записать сколько угодно номеров телефонов.
> Вот и все.

Очень просто. Две таблицы. Одна - клиент, вторая - телефонные номера, связанная с таблицей клиентов. Стандартная связь "мастер-детейл". Это называется "декомпозиция проекцией".
А вот примерная структура:
TABLE CLIENTS
ID INTEGER (PRIMARY KEY) некий искуственный индетификатор клиента, возможно AUTOINC
NAME STRING (или что там в Парадоксе, уже не помню) - имя клиента

TABLE PHONES
ID_CLIENT (FOREIGN KEY на таблицу CLIENTS)
PHONE_NUMBER <тип, подходящий для хранения номера телефона>
Первичный ключ во второй таблице состоит из двух полей - ID_CLIENT и PHONE_NUMBER.


3APA3A   (2003-09-20 00:16:00) [2]

Да я все понимаю, что крайне невыгодно делать БД с разной длиной записей, хотя бы из-за скорости доступа к такой БД. Но меня совершенно не интересуют накладные расходы (загрузка ЦП, размер занимаемой БД и т.д.) поэтому я и спрашиваю - можно ли?

Суть такова (это не то что мне надо, но если скажете это - все будет ясно)
Телефонная книга.Возможность создания клиента с именем. На каждое имя можно записать сколько угодно номеров телефонов. Вот и все.


Zacho   (2003-09-20 00:08:00) [3]

Если и можно, то почти наверняка - не нужно, и даже вредно. Почитай что-нибудь (хотя бы постоянно рекламируемого мной здесь Дейта) по теории РСУБД, и поймешь почему.
А лучше кратко, но конретно опиши задачу, тогда может и подскажем более-менее оптимальную структуру БД.


Наверх

Титульная страница Поиск, карта сайта Написать письмо