![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что лучше делать: увеличивать количество записей или ??? [D5, D6, IB5.x, IB6.x, Firebird]
Sirus © (2003-08-19 07:31:00)
Привет Мастера... Есть вопрос:
Что лучше делать: Увеличивать количество записей или увеличивать объем записи??? У меня в таблице запись состоит из фамилии и нескольких полей одинакового типа FIELD1, FIELD2, ... FIELDN. Есть два варианта таблицы:
1. Можно сделать одну запись со множеством полей
2. Можно сделать несколько записей с Фамилией и одним полем FIELD.
Помогите выбрать...
HSolo (2003-08-19 10:07:00) [1]
Я присоединяюсь к варианту от Danilka © (19.08.03 09:26) с 2 таблицами. Только ключи, по-моему, лучше сделать integer (если у них нет особой причины быть непременно varchar-ами) - скорость выше (см. http://www.ibase.ru/devinfo/test1.htm).
И еще один довод в пользу решения с 2 таблицами:
> многие из этих полей в зависимости от обстоятельств могут оказаться NULL
stone (2003-08-19 09:26:00) [2]
А эти графы для всех клиентов разные?
Danilka (2003-08-19 09:26:00) [3]
второй вариант:
create table kvts (
un_id varchar(8),
fio varchar(50),
kvt integer,
kvt_id integer)
в любом случае не катит - большая избыточность.
тогда уж 2 таблицы:
create table kvts (
un_id varchar(8),
fio varchar(50))
и
create table kvts_sp (
un_id varchar(8),
kvt_id integer,
kvt integer)
и еще, un_id как я понимаю - ключ, он обязательно должен быть varchar(8)? на мой взгляд уж лучше интегер.
Sirus (2003-08-19 09:14:00) [4]
В общем клиент платит за услуги по градации тарифов...
т.е. если услуга пястчная то он платит скажем 10 ед. по первой гр. т.е. в поле kvt1.
Если услуга стоящая то он платит 10 ед. по 1-гр., 15 по 2-гр. и тд...
Johnmen (2003-08-19 09:13:00) [5]
Зависит от предметной области, смысловой нагрузки kvt int и их количества.
DenK_vrtz (2003-08-19 09:11:00) [6]
>>Что лучше делать: Увеличивать количество записей или >>увеличивать объем записи???
Если отталкиваться от скорости работы, то лучше, я думаю, увеличить объем записи. Наличие в таблице лишних полей не влечет за собой никакого криминала.
stud (2003-08-19 09:09:00) [7]
а зачем вообще нужны эти поля и что они описывают??
Sirus (2003-08-19 08:55:00) [8]
create table kvts (
un_id varchar(8),
fio varchar(50),
kvt1 integer,
kvt2 integer,
kvt3 integer,
kvt4 integer,
kvt5 integer,
kvt6 integer,
kvt7 integer,
kvt8 integer,
kvt9 integer,
kvt10 integer)
Дело в том что многие из этих полей в зависимости от обстоятельств могут оказаться NULL, и не участвовать в расчетах.
Есть идея просто сделать таблицу типа
create table kvts (
un_id varchar(8),
fio varchar(50),
kvt integer,
kvt_id integer)
KVT_ID чтобы узнать какое именно это поле...
Verg (2003-08-19 07:46:00) [9]
Приведи-ка описание таблицы для своих двух вариантов.
Т.е. create table .......
Посмотрим чем они отличаются. Похоже, что какая-то путаница с термином запись