powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Много столбцов в таблице.
25 сообщений из 29, страница 1 из 2
Много столбцов в таблице.
    #33421493
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователю предлагается заполнить анкету. Около 100! вопросов. Он должен заполнить все из них. Некоторые данные он берет из справочников, а некоторые должен ввести сам.

Я читаю о нормализации баз данных сейчас и пытаюсь понять: как можно нормализовать таблицу, в которой должно храниться около 100 столбцов? И нужно ли ее разбивать на несколько таблиц, если в таблице не будет пустых значений, т.к. пользователь заполняет все поля?

Если разбивать ее на несколько таблиц, то все равно связи будут "один-к одному". И еще возникают сложности с редактированием таких данных.

Дайте совет, пожалуйста. А то у меня нету гуру рядом, которые бы подсказали и на путь истинный наставили.
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33421561
Slider_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Число полей значения не имеет, единственно, поля в этой таблице, заполняемые из справочников, должны быть внешними ключами (FK), указывающими на записи из соответствующих справочных таблиц.
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33421569
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, спасибо :)
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33421636
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про количество столбцов в правилах нормализации ничего не говорится. Но где будут хранится
тексты вопросов? Неужели в названиях столбцов?

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33421719
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iskander68, не говорится. Но просто я уже второй день читаю этот раздел форума и замечаю, что критикуют "широкие" таблицы. :) Аргументы - расширение будущее и сопровождение.

Тексты вопросов хранятся в другой таблице.
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33421732
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Арбайтер" <nospam@sql.ru>; сообщил/сообщила в новостях следующее: news:2148373@sql.ru...
Iskander
68, не говорится. Но просто я уже второй день читаю этот раздел форума и замечаю,
что критикуют "широкие" таблицы. :) Аргументы - расширение будущее и сопровождение.

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

А зачем в таком случае 100 столбцов?

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33421789
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я то как раз и задал вопрос по нормализации.

Аа, Семен Семеныч.
Создать что-то типа:

id, id вопроса, otvet
и тогда вместо 100 полей получится три.
Правильно?
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33421814
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Арбайтер" <nospam@sql.ru>; сообщил/сообщила в новостях следующее: news:2148484@sql.ru...
Я то как раз и задал вопрос по нормализации.

Аа, Семен Семеныч.
Создать что-то типа:

id, id вопроса, otvet
и тогда вместо 100 полей получится три.
Правильно?


Вопрос был по нормализации одной таблицы. В процессе разговора, выясняется, что их
больше одной.
Короче, как вариант:
таблица Пользователи(НомерПользователя, ФИО, др. личные данные, вероятно будет содержать
часть анкеты)
таблица Вопрос (НомерВопроса, ТекстВопроса)
таблица ПользователиВопросы (НомерПользователя, НомерВопроса, Ответ), ключ -
НомерПользователя, НомерВопроса, внешние ключи - понятно какие.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33421875
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как можно нормализовать одну таблицу, не создав другую дополнительную?

Спасибо за структуру.

Iskander68
внешние ключи - понятно какие.

я никогда их не использовал. Как ликбез, можно?
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33421942
Slider_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Арбайтер: Почитайте это , может многие вопросы отпадут.
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33421966
Slider_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это опросник типа тестирования, обязательно дожна быть еще таблица шаблонов, содержащая перечень вопросов, задаваемых пользователю...
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33422292
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slider_spb, спасибо за ссылку. Читаю.

Iskander68, в предложенной Вами структуре есть один ньюанс: ответы будут и типа integer и varchar и bool.
Каким же тогда должно быть поле "ответ"?
Наверно надо вводить еще одно поле "тип ответа", в котором перечислить все возможные типы и при создании вопроса, указывать, какого типа будет на него ответ?
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33422363
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Арбайтер" <nospam@sql.ru>; сообщил/сообщила в новостях следующее: news:2149252@sql.ru...
Slider
_spb, спасибо за ссылку. Читаю.

Iskander68, в предложенной Вами структуре есть один ньюанс: ответы будут и типа integer и
varchar и bool.
Каким же тогда должно быть поле "ответ"?
Наверно надо вводить еще одно поле "тип ответа", в котором перечислить все возможные типы и
при создании вопроса, указывать, какого типа будет на него ответ?

Видимо, да, такое поле нужно. А для самих ответов просто сделать varchar. Тогда селекты
будут гораздо проще. На уровне приложения (оно же будет?) ограничить возможные ответы
согласно полю ТипВопроса.

--
Regards
Alexander Artamonov
Тема Ответить

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33426442
Dimkas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Наверно надо вводить еще одно поле "тип ответа", в котором перечислить >все возможные типы и при создании вопроса, указывать, какого типа будет
>на него ответ?

Как вариант в таблице ответов можно сделать вот такие столбцы:
1. Код отвечающего
2. Код вопроса
3. Код типа ответа
4. Логический ответ
5. Целочисленный ответ
6. Ответ с плавающей точкой
7. Строковый ответ
8. Код ответа из справочника №1
9. Код ответа из справочника №2
10. Код ответа из справочника №3
11. ...

Т.е. после произвольных ответов (4-7) добавляются поля, ссылающиеся на справочники. Если для каждого опроса свой набор справочников, то и таблицы ответов делать разные.
Плюс - можно будет организовать автоматическую проверку ссылочной целостности по справочникам.

с уважением,
Дмитрий Жучков
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33426447
Dimkas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
продолжение...

Естественно, что в каждой строке такой таблицы может быть только один ответ и он определяется по коду типа ответа. В поле "Код типа ответа" можно хранить просто число, показывающее в каком поле надо смотреть ответ (т.е. номер поля).

с уважением,
Дмитрий Жучков
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33426727
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Dimkas" <nospam@sql.ru>; сообщил/сообщила в новостях следующее: news:2156093@sql.ru...
>Наверно надо вводить еще одно поле "тип ответа", в котором перечислить >все возможные типы
и при создании вопроса, указывать, какого типа будет
>на него ответ?

Как вариант в таблице ответов можно сделать вот такие столбцы:
1. Код отвечающего
2. Код вопроса
3. Код типа ответа
4. Логический ответ
5. Целочисленный ответ
6. Ответ с плавающей точкой
7. Строковый ответ
8. Код ответа из справочника ?1
9. Код ответа из справочника ?2
10. Код ответа из справочника ?3
11. ...

Т.е. после произвольных ответов (4-7) добавляются поля, ссылающиеся на справочники. Если для
каждого опроса свой набор справочников, то и таблицы ответов делать разные.
Плюс - можно будет организовать автоматическую проверку ссылочной целостности по
справочникам.

с уважением,
Дмитрий Жучков

Если к каждому вопросу есть только один тип ответа, то столбец "Код Типа Ответа" здесь
лишний - он будет указан в табл. Вопросы.



--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33427244
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за советы.
Почитал, теперь начинаю делать более осознанно проект.
Особенно спасибо Slider_spb за ссылку на доку.

Конечно, вопросов еще возникнет масса в процессе работы.
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33430000
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот база получается красиво. В одной таблице (вопрос):

id_voprosa,
vopros

во второй
id otveta,
id voprosa,
otvet.

Но теперь я застопорился на том, как приложение строить в таком случае.
Раньше все было просто: есть поле, DBEdit, CheckBox и т.д. Каждый эдит был подключен к отдельному полю.

А как теперь быть?
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33430114
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имею в виду ввод данных в такую структуру. С выборкой проще.
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33430131
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можно генерить нужные контролы в рантайме
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33430203
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня уже написана функция, которая сохраняет в базе некоторые свойства контрола (высота, ширина, позиция на форме).

И таблицы для этого созданы по образу и подобию тех, которые описаны в топике:
в одной
control_id,
control_name

в другой
property_id,
control_id,
ширина,
высота,
слева,
сверху.

Я думаю, может как-то существующими таблицами воспользоваться?
Но как это сделать, пока в голову че-то не приходит..
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33430298
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Хм. На мой взгляд хранить свойства контрола в базе - неразумно. Лучше их переменные свойства динамически высчитывать.
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33430423
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2, тут просто заказчик хочет настраиваемый интерфейс и ему не нравится, когда свойства хранятся в ини файле. Очень хотел, чтобы в базе хранились.
Ну я и сделал. Идея неплохая, в принципе. Я читаю из базы значение свойства контрола и присваиваю его контролу. Все просто.
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33430483
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Арбайтер. Не верьте заказчику! Он не найдет ни одного юзера, который будет изменять настройки по дефолту!
Я не говорю, что так делать нельзя. Уж лучше в базе, чем по последнй моде - в XTML-файлах
==
Что нужно заказчику? Конкретный опрос или прога для формирования произвольных опросов? Две большие разницы. Универсального рецепта нет, но всегда можно найти разумный компромис между легкостью реализации и функциональностью в конкретной ситуации.
...
Рейтинг: 0 / 0
Много столбцов в таблице.
    #33430597
Арбайтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я уже итак задолбался переделывать там все. 1000 раз уже себя казнил, что взялся за работу с нечетко сформулированнным ТЗ.
А теперь уже занимаюсь этим просто, как хобби, т.к. экономического обоснования то уже и нету толком. Можно было за это время сделать кучу других вещей :)


А по последней моде - это щас xml :)

А вопрос по поводу того, как подключить для отдельного вопроса отдельный контрол остается открым для данной структуры базы.
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Много столбцов в таблице.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]