Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Есть несколько таблиц, в которых есть группы полей одинакового типа и содержания, но они все нужны в каждой. Что-то типа Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. Параметры потомка уточняют параметры родителя, если в родителе что-то не задано, применяются параметры потомка и наоборот, по этому поля нужны и там и там. И таких таблиц 4-5. Вопрос в том, стоит ли вынести параметры в отдельную таблицу таким образом: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 17:09 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
А какова логика - набор значений параметров составляет самостоятельную сущность, которую можно многократно использовать для характеризации различных экземпляров объектов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 17:55 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
В том-то и дело, что это не самостоятельная сущность, а именно набор параметров другой сущности. И каскадное удаление, например, придется перекладывать на клиентский софт. С одной стороны получится одна форма, которая обслуживает группу параметров, они будут сопровождаться кучей и тыды., с другой надо попотеть, чтобы потом наладить добавление-удаление других сущностей. Вот я и спрашиваю, насколько плохо подчиненную сущность сделать независимой, если так удобнее по некоторым соображениям. Какие бывают проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 18:04 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Тогда лучше просто декомпозиция на проекции, по которым однозначно восстанавливается исходная таблица Код: plaintext 1. 2. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 11:15 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Насколько я понял, в таком случае надо обеспечить,чтобы ID родителей и потомков никогда не пересекались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 16:30 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
И как тогда протянутся связи по внешним ключам (откуда и куда)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 17:07 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
??И как тогда протянутся связи по внешним ключам (откуда и куда)? и туда и сюда (внешнее объединение) + "Перекрытие/наследование" в конструкции вида CASE WHEN .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 17:27 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Таблицы оставить как есть, сделать на каждую пару проекцию с case-ми, которая заполняет поля параметров в в соответствии с вашей логикой и в приложении пользоваться только ей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 18:31 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Спасибо, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 19:56 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
а как вам такое решение? одна таблица --------------- ID ID_Родителя Параметр1 Параметр2 --------------- если ID = ID_Родителя, то это родитель ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 06:31 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
если ID = ID_Родителя, то это родитель Это неправильно. Для самого старшего родителя надо делать ID_Родителя := NULL. Что будет говорить нам о том, что у этого родителя нет родителя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 08:39 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Это по сути неоднородные объекты. У них просто есть блок одинаковых параметров, а сложить все в одну таблицу не выйдет хотя бы по тому, что ключи зависимых объектов составные и имеют разное количество элементов. Есть вариант с приделыванием суррогатного ключа... Вообще, сейчас выложу диаграмму, чтобы не размахивать руками в воздухе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 09:53 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Вот такая схема настройки репликации. Есть варианты репликации (Replication), сервера (Host). Общие настройки таблицы (Table) и ее полей (Field). И частные настройки сервера для данного варианта репликации (HostInstance), частные настройки таблиц конкретного сервера в варианте репликации и их полей (TableInstance, FieldInstance). Группа повторных параметров (active, direction, mode). На самом деле их больше, но это не важно. Хочется отделить повторные параметры... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 10:38 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Картинка не прицепилась... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 10:39 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
Еще раз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 10:42 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
авторключи зависимых объектов составные ааааа!!! ... ненавижу :) всегда решаю через суррогатный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 11:46 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
авторесли ID = ID_Родителя, то это родитель Это неправильно. Для самого старшего родителя надо делать ID_Родителя := NULL кстати, почему неправильно? в задаче не было сказано о существовании единственного корневого (старшего) родителя, а так на столбец можно наложить NOT NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 11:56 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
В картинке глюк, связь от FieldInstance должна идти к TableInstance. Прошу прощения. Единственного корня нет. Родительские объекты - варианты репликации (Replication) В той системе, где это надо сделать есть небольшие напряги с заведением суррогатного ключа. То есть настройка генератора - нетривиальная задача, а использование RowId возможно, но по некоторым соображениям тоже не приветствуется. А вообще, как правильно проектировать такие структуры, может кто сталкивался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 12:06 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
unreger в задаче не было сказано о существовании единственного корневого (старшего) родителя не поал. Чем Null мешает множественности корней? unreger, а так на столбец можно наложить NOT NULL зачем, простите? с другой стороны, инетресно, что быстрее WHERE pid IS NULL (вариант - WHERE pid = 0) или WHERE pid = id и что проще в FK ON DELETE SET NULL (на убийство корня) или триггер на он делете (с выставкой pid в id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 12:16 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
По диаграмме на первый взгляд: 1)От одного HostInstance пути HostInstance -> Replication -> Host и HostInstance -> Host могут вести к разным Host? Если нет, то лучше убрать HostInstance -> Host, а Hostname включить в PK Replication . При этом можно оставить UNIQUE Replicationname. 2)Почему Replication.Mainhost не является ссылкрй на Host ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 18:34 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
В диаграмме ошибки, прошу прощения. Вот, кажется, правильный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 10:06 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
ИМХО нет причин выносить параметры в специальную таблицу. Если бы значения параметров формировали какие-то устойчивые многократно используемые сочетания (профили), то конечно- упростились бы запросы объектов с одинаковыми профилями. З.Ы. Теперь не пойму, почему fieldinstance не ссылается на field. Ну не суть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 16:43 |
|
||
|
Можно ли вынести группы повторяющихся полей в отдельную таблицу
|
|||
|---|---|---|---|
|
#18+
На этот раз все правильно, он не должен туда ссылаться. Очень хотелось сделать единый механизм заполнения параметров, по этому и возникла мысль вынести в отдельную таблицу, хотя, сущность так просто не отделяется... Если в блоке параметров наступят изменения, придется во всех таблицах и в связанном с ними коде вносить изменения. При том, что известно, что блок параметров будет одинаковым для всех объектов. Как можно вынести блок параметров в отдельную таблицу при том, что он должен быть связан с другими несколькими таблицами отношением 1 к 1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 18:09 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33185644&tid=1545746]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
135ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 492ms |

| 0 / 0 |
