Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Пользователю предлагается заполнить анкету. Около 100! вопросов. Он должен заполнить все из них. Некоторые данные он берет из справочников, а некоторые должен ввести сам. Я читаю о нормализации баз данных сейчас и пытаюсь понять: как можно нормализовать таблицу, в которой должно храниться около 100 столбцов? И нужно ли ее разбивать на несколько таблиц, если в таблице не будет пустых значений, т.к. пользователь заполняет все поля? Если разбивать ее на несколько таблиц, то все равно связи будут "один-к одному". И еще возникают сложности с редактированием таких данных. Дайте совет, пожалуйста. А то у меня нету гуру рядом, которые бы подсказали и на путь истинный наставили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 11:12 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Число полей значения не имеет, единственно, поля в этой таблице, заполняемые из справочников, должны быть внешними ключами (FK), указывающими на записи из соответствующих справочных таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 11:29 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Ок, спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 11:31 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Про количество столбцов в правилах нормализации ничего не говорится. Но где будут хранится тексты вопросов? Неужели в названиях столбцов? -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 11:47 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Iskander68, не говорится. Но просто я уже второй день читаю этот раздел форума и замечаю, что критикуют "широкие" таблицы. :) Аргументы - расширение будущее и сопровождение. Тексты вопросов хранятся в другой таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 12:02 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
"Арбайтер" <nospam@sql.ru> сообщил/сообщила в новостях следующее: news:2148373@sql.ru... Iskander68, не говорится. Но просто я уже второй день читаю этот раздел форума и замечаю, что критикуют "широкие" таблицы. :) Аргументы - расширение будущее и сопровождение. Тексты вопросов хранятся в другой таблице. Тема Ответить А зачем в таком случае 100 столбцов? -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 12:05 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Я то как раз и задал вопрос по нормализации. Аа, Семен Семеныч. Создать что-то типа: id, id вопроса, otvet и тогда вместо 100 полей получится три. Правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 12:17 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
"Арбайтер" <nospam@sql.ru> сообщил/сообщила в новостях следующее: news:2148484@sql.ru... Я то как раз и задал вопрос по нормализации. Аа, Семен Семеныч. Создать что-то типа: id, id вопроса, otvet и тогда вместо 100 полей получится три. Правильно? Вопрос был по нормализации одной таблицы. В процессе разговора, выясняется, что их больше одной. Короче, как вариант: таблица Пользователи(НомерПользователя, ФИО, др. личные данные, вероятно будет содержать часть анкеты) таблица Вопрос (НомерВопроса, ТекстВопроса) таблица ПользователиВопросы (НомерПользователя, НомерВопроса, Ответ), ключ - НомерПользователя, НомерВопроса, внешние ключи - понятно какие. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 12:22 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
А как можно нормализовать одну таблицу, не создав другую дополнительную? Спасибо за структуру. Iskander68 внешние ключи - понятно какие. я никогда их не использовал. Как ликбез, можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 12:34 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
2Арбайтер: Почитайте это , может многие вопросы отпадут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 12:52 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Если это опросник типа тестирования, обязательно дожна быть еще таблица шаблонов, содержащая перечень вопросов, задаваемых пользователю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 12:57 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Slider_spb, спасибо за ссылку. Читаю. Iskander68, в предложенной Вами структуре есть один ньюанс: ответы будут и типа integer и varchar и bool. Каким же тогда должно быть поле "ответ"? Наверно надо вводить еще одно поле "тип ответа", в котором перечислить все возможные типы и при создании вопроса, указывать, какого типа будет на него ответ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 14:05 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
"Арбайтер" <nospam@sql.ru> сообщил/сообщила в новостях следующее: news:2149252@sql.ru... Slider_spb, спасибо за ссылку. Читаю. Iskander68, в предложенной Вами структуре есть один ньюанс: ответы будут и типа integer и varchar и bool. Каким же тогда должно быть поле "ответ"? Наверно надо вводить еще одно поле "тип ответа", в котором перечислить все возможные типы и при создании вопроса, указывать, какого типа будет на него ответ? Видимо, да, такое поле нужно. А для самих ответов просто сделать varchar. Тогда селекты будут гораздо проще. На уровне приложения (оно же будет?) ограничить возможные ответы согласно полю ТипВопроса. -- Regards Alexander Artamonov Тема Ответить Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 14:24 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
>Наверно надо вводить еще одно поле "тип ответа", в котором перечислить >все возможные типы и при создании вопроса, указывать, какого типа будет >на него ответ? Как вариант в таблице ответов можно сделать вот такие столбцы: 1. Код отвечающего 2. Код вопроса 3. Код типа ответа 4. Логический ответ 5. Целочисленный ответ 6. Ответ с плавающей точкой 7. Строковый ответ 8. Код ответа из справочника №1 9. Код ответа из справочника №2 10. Код ответа из справочника №3 11. ... Т.е. после произвольных ответов (4-7) добавляются поля, ссылающиеся на справочники. Если для каждого опроса свой набор справочников, то и таблицы ответов делать разные. Плюс - можно будет организовать автоматическую проверку ссылочной целостности по справочникам. с уважением, Дмитрий Жучков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 08:24 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
продолжение... Естественно, что в каждой строке такой таблицы может быть только один ответ и он определяется по коду типа ответа. В поле "Код типа ответа" можно хранить просто число, показывающее в каком поле надо смотреть ответ (т.е. номер поля). с уважением, Дмитрий Жучков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 08:26 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
"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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 10:35 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за советы. Почитал, теперь начинаю делать более осознанно проект. Особенно спасибо Slider_spb за ссылку на доку. Конечно, вопросов еще возникнет масса в процессе работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 13:11 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Вот база получается красиво. В одной таблице (вопрос): id_voprosa, vopros во второй id otveta, id voprosa, otvet. Но теперь я застопорился на том, как приложение строить в таком случае. Раньше все было просто: есть поле, DBEdit, CheckBox и т.д. Каждый эдит был подключен к отдельному полю. А как теперь быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 11:00 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Я имею в виду ввод данных в такую структуру. С выборкой проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 11:42 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Можно генерить нужные контролы в рантайме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 11:48 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
У меня уже написана функция, которая сохраняет в базе некоторые свойства контрола (высота, ширина, позиция на форме). И таблицы для этого созданы по образу и подобию тех, которые описаны в топике: в одной control_id, control_name в другой property_id, control_id, ширина, высота, слева, сверху. Я думаю, может как-то существующими таблицами воспользоваться? Но как это сделать, пока в голову че-то не приходит.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 12:15 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Хм. На мой взгляд хранить свойства контрола в базе - неразумно. Лучше их переменные свойства динамически высчитывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 12:50 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Cat2, тут просто заказчик хочет настраиваемый интерфейс и ему не нравится, когда свойства хранятся в ини файле. Очень хотел, чтобы в базе хранились. Ну я и сделал. Идея неплохая, в принципе. Я читаю из базы значение свойства контрола и присваиваю его контролу. Все просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 13:33 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Арбайтер. Не верьте заказчику! Он не найдет ни одного юзера, который будет изменять настройки по дефолту! Я не говорю, что так делать нельзя. Уж лучше в базе, чем по последнй моде - в XTML-файлах == Что нужно заказчику? Конкретный опрос или прога для формирования произвольных опросов? Две большие разницы. Универсального рецепта нет, но всегда можно найти разумный компромис между легкостью реализации и функциональностью в конкретной ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 13:57 |
|
||
|
Много столбцов в таблице.
|
|||
|---|---|---|---|
|
#18+
Да я уже итак задолбался переделывать там все. 1000 раз уже себя казнил, что взялся за работу с нечетко сформулированнным ТЗ. А теперь уже занимаюсь этим просто, как хобби, т.к. экономического обоснования то уже и нету толком. Можно было за это время сделать кучу других вещей :) А по последней моде - это щас xml :) А вопрос по поводу того, как подключить для отдельного вопроса отдельный контрол остается открым для данной структуры базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 14:31 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=145&tid=1545521]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 428ms |

| 0 / 0 |
