У меня была таблица tab и три поля одинакового типа field1 field2 field3,
теперь количество полей увеличилось до 20.
Вот у меня стоит дилема - есть 20 полей одного типа, скажите, пожалуйста, правильнее сделать таблицу вида:
1) tab1
-----------------
id_user field1 field2 field3 field4 .... field20
или
2) tab2
-----------------
id_user type_field value
Первая таблица будет содержать меньшее кол-во строк, но некоторые значение пустовать будут(зато таблица tab легко переделывается в tab1), а вторая таблица не будет содержать пустых значений зато, очень много строк - запросы не будут тормозить?
И еще момент, если выбрать второй вариант, то как быть с теми записями что создавались ранее - они то сохранены в таблице вида:
tab
-----------------
id_user field1 field2 field3
Мне запросы к двум таблицам придётся делать и еще проверки - или как?

Спустя 57 минут, 35 секунд (21.10.2010 - 07:32) Michael написал(а):
Цитата (zvezda_t @ 21.10.2010 - 05:34) |
три поля одинакового типа field1 field2 field3, теперь количество полей увеличилось до 20. |
что значит три поля одинакового типа? Строки?
Если это что то типа Его Машина 1, Его Машина 2, ...
то надо в столбик, т.к. сущность одна - машина или в общем - имущество.
А если например id_человека, ФИО, № страхования, адрес, .... - то разными полями (столбиками)
Спустя 1 минута, 4 секунды (21.10.2010 - 07:33) Michael написал(а):
Цитата |
И еще момент, если выбрать второй вариант, то как быть с теми записями что создавались ранее - они то сохранены в таблице вида: |
все надо переделывать под новую структуру и старые данные перегонять.
Спустя 56 секунд (21.10.2010 - 07:34) arvitaly написал(а):
Цитата |
А если например id_человека, ФИО, № страхования, адрес, .... - то разными полями (столбиками) |
Если их много и разные - то тоже можно строки
Спустя 12 минут, 25 секунд (21.10.2010 - 07:46) zvezda_t написал(а):
Цитата |
все надо переделывать под новую структуру и старые данные перегонять. |
о - ё - ёй...
там несколько тысяч записей...

Цитата |
Если это что то типа Его Машина 1, Его Машина 2, ... |
да, что то в этом роде.
спасибо)
буду переделывать

Спустя 24 минуты, 37 секунд (21.10.2010 - 08:11) Michael написал(а):
Цитата (arvitaly @ 21.10.2010 - 06:34) | ||
Если их много и разные - то тоже можно строки |
И какой в этом скрытый смысл?
Вместо одной таблицы три создать?
Усложнить запросы?
А что с индексами? Один для всех данных - и нужных и не нужных для сортировки?
Спустя 1 час, 47 минут, 17 секунд (21.10.2010 - 09:58) sergeiss написал(а):
Цитата (zvezda_t @ 21.10.2010 - 07:34) |
Первая таблица будет содержать меньшее кол-во строк, но некоторые значение пустовать будут(зато таблица tab легко переделывается в tab1), а вторая таблица не будет содержать пустых значений зато, очень много строк - запросы не будут тормозить? |
Ты опиши задачу более подробно, подумаем. И к тому же - "очень много строк" - это сколько? 1-2-5-10 тысяч или в миллионах измеряется (это без шуточек вопрос).
Спустя 1 час, 23 минуты (21.10.2010 - 11:21) zvezda_t написал(а):
Цитата |
очень много строк" - это сколько? 1-2-5-10 тысяч или в миллионах измеряется (это без шуточек вопрос). |
в день добавляется по 100 пользователей, если у каждого по 20 типов полей...
tab2
-----------------
id_user type_field value
если при этом все 20 будут иметь не пустое значение, то 2000 строк в день в таблице tab2

Спустя 33 минуты, 20 секунд (21.10.2010 - 11:55) sergeiss написал(а):
Ну и чего, что 2000 строк в день? Это всего 730 тысяч записей в год. Это что, много, по-твоему? Правильно делаешь индексы и запросы и всё будет летать.
Что касается структуры таблиц, то уже говорили про них в этой теме, не буду повторяться.
Что касается структуры таблиц, то уже говорили про них в этой теме, не буду повторяться.
Спустя 4 минуты, 17 секунд (21.10.2010 - 11:59) zvezda_t написал(а):
sergeiss благодарю

_____________
Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)