|
|
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
Уверен, что тема не раз уже обсуждалась, но чёткого ответа так и не нашёл. Вопрос такой: Пользователи системы должны уметь импортировать в БД данные такого вида: Код: plaintext 1. Причем - у каждого пользователя произвольный набор полей. Как это правильнее сделать? На ум пока приходят 2 варианта: 1) динамически изменять схему данных, создавая для каждого пользователя свою таблицу в БД Какие есть доводы против этого помимо того, что обсуждалось здесь ? 2) Вести одну общую для таблицу с максимальным количеством полей. В этом случае в таблице будет много пустых значений. По этим полям для каждого пользователя будут строится выборки, то есть целиком загнать Table1 сериализованной в одно поле - не выход. Есть ли иные, более красивые решения или может модификации предложенных выше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 17:46 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
muradm пишет: 3) Применить подход БД - хранилище атрибутов. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 18:19 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
Извратиться можно по-всякому, но для названных операций очень мало смысла применять нечто отличное от второго подхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 18:23 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
MasterZiv muradm пишет: 3) Применить подход БД - хранилище атрибутов. Posted via ActualForum NNTP Server 1.4 Имеется ввиде нечто виде Код: plaintext 1. 2. 3. 4. 5. 6. К рассматриваемой задаче не очень подходит, много данных планируется, таблица разрастется непомерно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 18:28 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
softwarerИзвратиться можно по-всякому, но для названных операций очень мало смысла применять нечто отличное от второго подхода. Хорошо, а какие основные доводы против первого метода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 18:30 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
muradmХорошо, а какие основные доводы против первого метода? 1. С очень большой вероятностью рано или поздно захочется делать запросы по данным нескольких или даже всех пользователей - хотя бы "а сколько всего данных у нас в системе". Динамически формировать объединение таблиц через union - то еще занятие, да и вообще динамический код - лишние хлопоты. 2. Пользователям придется только ради этого давать права на создание-изменение таблиц в схеме. И нет никакой гарантии, что они не поломают чужие таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 18:40 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
OK, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 19:26 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
muradm пишет: > К рассматриваемой задаче не очень подходит, много данных планируется, > таблица разрастется непомерно Ну да и фиг с ней, пусть растет. Производная Логарифма в бесконечности убывает. (математики есть ? я правильно сказал ?) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 20:08 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
Нет, неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 21:16 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
softwarer пишет: > Нет, неправильно. Ты же не математик. Ну не важно, имелось в виду, что логарифм на + бесконечности хоть и не имеет асимптоты, но все равно растет очень медленно. И более того, он растет тем медленнее, чем больше растет переменная. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2007, 12:38 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
MasterZiv Ты же не математик. Загляни к нему в резюме ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2007, 16:31 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
softwarer Нет, неправильно. А что неправильно? вроде так и есть, убывает при возрастающем x. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 14:59 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин И вправду, чушь сказал. 2MasterZiv: прошу прощения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 15:12 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
MasterZivНу не важно, имелось в виду, что логарифм на + бесконечности хоть и не имеет асимптоты Имеет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 17:07 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
Локшин Марк пишет: > Ну не важно, имелось в виду, что логарифм на + бесконечности хоть и не > имеет асимптоты > Имеет :) Ну расскажите тогда, какую. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:18 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
MasterZivНу расскажите тогда, какую. (ln(x))' = 1/x На + бесконечности асимптотически приближается к 0 (сверху). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:24 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
Локшин Марк пишет: > (ln(x))' = 1/x > На + бесконечности асимптотически приближается к 0 (сверху). "имелось в виду, что логарифм на + бесконечности хоть и не имеет асимптоты," Логарифм сам не имеет асимптоты. А его производная может и имеет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:37 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
MasterZivЛогарифм сам не имеет асимптоты. Гм, действительно не заметил, что во втором сообщении уже про логарифм а не про производную... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:39 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
muradmЕсть ли иные, более красивые решения или может модификации предложенных выше? Решение есть. Система на основе описателей объектов. http://www.rbsystem.h18.ru/ Только мне непонятно, почему пользователи сами должны создавать таблицы. Ведь поля бывают разные и особенно поля, содержащие справочную, повторяющуюся информацию. Не каждый бухгалтер с 20-летним стажем справится с такой задачей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 10:24 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
sergey888 muradmЕсть ли иные, более красивые решения или может модификации предложенных выше? Решение есть. Система на основе описателей объектов. http://www.rbsystem.h18.ru/ Только мне непонятно, почему пользователи сами должны создавать таблицы. Ведь поля бывают разные и особенно поля, содержащие справочную, повторяющуюся информацию. Не каждый бухгалтер с 20-летним стажем справится с такой задачей. Ссылка не открывается. Здесь речь не идет о том, чтобы пользователи сами создавали таблицы. Для них будет аккуратненький интерфейс. Таблицы создаваться будут приложением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 10:30 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
У меня открывается. Надо просто подолжать - документ большой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 10:41 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
muradmЗдесь речь не идет о том, чтобы пользователи сами создавали таблицы. Для них будет аккуратненький интерфейс. Таблицы создаваться будут приложением. А что вы подразумеваете под предложением "Таблицы будут создаваться приложением"? Может стоит взять ERWin и пусть пользователи там и ваяют таблицы, а ERWin сгенерирует скрипт на создание таблицы. Или можно научить пользователей Oracle Disigner. Он очень грамотно формирует скрипты на модификацию таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 10:45 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
sergey888 muradmЗдесь речь не идет о том, чтобы пользователи сами создавали таблицы. Для них будет аккуратненький интерфейс. Таблицы создаваться будут приложением. А что вы подразумеваете под предложением "Таблицы будут создаваться приложением"?Я, конечно, не автор - но что-то мне подсказывает, что это означает: Когда пользователь нажимает кнопку в интерфейсе "Загрузить", программа выполняет - CREATE TABLE TMP_TAB_2345 .... и грузит во вновь созданную таблицу данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 10:54 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
А если пользователь неправильно создал таблицу, то что произойдет? Допустим забыл создать одно поле, как пройдет загрузка? Про типы данных я вообще молчу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:02 |
|
||
|
Динамическое изменение схемы данных vs. Общая таблица
|
|||
|---|---|---|---|
|
#18+
muradmПользователи системы должны уметь импортировать в БД данные такого вида: Код: plaintext 1. Причем - у каждого пользователя произвольный набор полей. [] По этим полям для каждого пользователя будут строится выборки, то есть целиком загнать Table1 сериализованной в одно поле - не выход. пользователям запрещено видеть чужие данные - вариант (1). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:09 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34919155&tid=1544212]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
159ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 428ms |

| 0 / 0 |
