|
|
|
Помогите правильно сделать структуру БД
|
|||
|---|---|---|---|
|
#18+
Да Палыч же тролль! Ну-ка, ну-ка, цыпа, цыпа... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2011, 18:56 |
|
||
|
Помогите правильно сделать структуру БД
|
|||
|---|---|---|---|
|
#18+
ZezaMpalich12, ежели сам мастер - наф топик так называется - - Помогите правильно сделать структуру БД так бы и обозначил - - сам знаю как правильно сделать структуру БД , поэтому сделаю по-своему .... но все-равно всем спасибо... типа ... Ну на самом деле я, когда топик открывал, очень сомневался в этом решении. Вот решил по обсуждать умными людьми. На самом деле очень помогло. Ибо в споре рождается истина, в какой-то момент даже переубедился, но потом вернулся к одному из своих решений, т. к. узнал, что таблицы где много полей заполнены NULL работают не на много медленнее. Зато разрабатывать систему с Одной таблицей и соответственно с одной структурой в коде гораздо проще. Но сразу описался что это только в том случае когда 100% ничего изменять не придется, иначе швах. Вот и написал ответ и полностью признаю правоту коллег. Ибо в условиях неопределенности будущего и потенциальной возможности дальнейших изменений, нужно писать только так как предложил Программист-Любитель. Пример: мой вариант хорош для анкет с полями типа: - отчество бабушки - где я был 13 января 2001 г. - Имя моего первого домашнего животного Тоесть для вопросов на которые пользователь точно однозначно ответит и один раз. В остальных случаях нужно использовать вариант Программиста-Любителя. Собственно изначальный вопрос при следовал цель выяснить, нужно ли такие поля выносить в отжельные таблицы, чтобы основная не была забита в основном NULL. Или и так сойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2011, 08:59 |
|
||
|
Помогите правильно сделать структуру БД
|
|||
|---|---|---|---|
|
#18+
Не вижу чем "хорош" вариант ТС для анкет с полями типа ... и в чем трудность реализации разных полей в моем варианте. Картинка из старой-старой эмдебешки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2011, 12:41 |
|
||
|
Помогите правильно сделать структуру БД
|
|||
|---|---|---|---|
|
#18+
Программист-Любитель, В том что вы предлагаете вариант для проведения тестирования А мне нужно для сбора Информации о пользователе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2011, 15:25 |
|
||
|
Помогите правильно сделать структуру БД
|
|||
|---|---|---|---|
|
#18+
авторНужно сделать следующую БД и софт. Есть пользователь, он может заполнять ряд анкет. Существует множество (заранее известное но большое) видов этих анкет. Но пользователю не нужно заполнять все анкеты, обычно 1-2. Версия одной анкеты у пользователя всегда одна. То есть пользователь не может создавать 2 экземпляра одной анкеты. Вы бы уж определились. Или вы храните реестр пользователей в виде обычной таблицы где строки - пользователи, столбцы - атрибуты (свойства) пользователей. Или таки разные анкеты на них заполняете. На рисунке - иллюстрация того, как можно настроить заполнение различных видов вопросов в анкете по модели Пользователи - Анкеты - Вопросы - ВариантыОтветов - ОтветыПользователей. То, что на экране надписи "тест", а не "анкета" никакого значения не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2011, 15:53 |
|
||
|
Помогите правильно сделать структуру БД
|
|||
|---|---|---|---|
|
#18+
palich12, вы сделайте как считате нужным, пусть поработает кто на ней пару месяцев потом приходите поделитесь впечатлениями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2011, 16:22 |
|
||
|
Помогите правильно сделать структуру БД
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительВы бы уж определились. Или вы храните реестр пользователей в виде обычной таблицы где строки - пользователи, столбцы - атрибуты (свойства) пользователей. Или таки разные анкеты на них заполняете. Первое Возможно я сам виноват, не понятно определил задачу. Да анкеты имеют следующий вид типа анкета1: первое Высшее образование -ВУЗ -Степень -Номер специальности ... анкета 2: Служба в армии -звание -должность -род войск Тоесть каждая анкета в отдельности может быть не заполнена, но на любой вопрос пользователь отвечает однозначно и 1 раз. Собственно изначально вопрос был в том, нужно ли их выносить в отдельные таблицы со связями 1:1 или ничего страшного если все это будет лежать в одной таблице User но во многих ячейках будет NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2011, 17:03 |
|
||
|
Помогите правильно сделать структуру БД
|
|||
|---|---|---|---|
|
#18+
palich12, 1. При добавлении нового вопроса в тело любой анкеты при вашем подходе требует: а) обеспечить механизм, посредством которого, так или иначе, пользователь смог бы создать дополнительный столбец в таблице User б) либо делать это самому 2. Удаление вопроса из анкеты мне представляется невозможным по нескольким причинам: -удалить столбец из таблицы User нельзя - там уже есть данные по этому вопросу -НЕ выводить данный вопрос в форму анкеты можно только при вспомогательных настроек вида ( Анкета1 Поле1 Выводить(Да/Нет)), из чего следует, что при выводе любой Анкеты в форму, потребуется запрос вида: String flds; flds = ПользовательскаяФункцияКотораяФильтруетВыводПолей(); SELECT flds FROM User WHERE КодПользователя = X Потому что средствами чистого SQL такую задачу решить я не знаю как во вменяемом виде. Отсюда делаю вывод - необоснованно не нормализованная форма данных привела к усложнению и понимания, и реализации. 3. Варианты ответа на вопросы анкеты, как? При нормализованном виде это 1 JOIN. А в вашем? Если же вариантов ответа нет, то выборка все Людей с высшим образованием может носить непредсказуемые результаты, если ответы были: Высшее образование Выс. обр. Вышка и тд. 4. Элементарная выборка всех людей с нужным атрибутом - становится головной болью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2011, 17:48 |
|
||
|
Помогите правильно сделать структуру БД
|
|||
|---|---|---|---|
|
#18+
Озверин, 1. ALTER TABLE dbo.doc_exa ADD column_b VARCHAR(20) NULL ; 2. ALTER TABLE dbo.doc_exb DROP COLUMN column_b ; 3. Варианты ответа выносятся в словарь, в таблице User хранится только id записи из словара. Выборки делаются по id, типа select * from User where user.eduid = 1 4. см. пункт 3, если это головная боль то я уж и не знаю. P. S. С чего вы взяли что данная структура не нормализована? Потому что в ней есть поля которые могут быть NULL? Укажите какой нормальной форме она не соответсвует и почему. P. P. S. Почему вывод между 2 и 3 пунктом а не в конце. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2011, 10:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37382297&tid=1542069]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 374ms |

| 0 / 0 |
