|
|
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
Ugnich AntonСамая вкуснятина - вывод на печать. Есть шаблон документа, в котором есть слова, например, %[День рождения фирмы]%. И система автоматом заменяет в тексте это название атрибута на значение. С варинтом "ALTER TABLE" это было бы сложнее. Если клиент позволяет строить динамический запрос и достучаться до имен полей в БД, то SELECT * FROM ПАРТНЕРЫ WHERE ID=? и подставлять в шаблон значения соответствующих колонок по имени. Примерно так это реализовано у нас на PowerBuilder. Кстати вопрос аналогичный locky , как вы решили вопрос с типми атрибутов? Все в строке или три поля datetime, money, varchar(255)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 18:46 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
Old Nickне ALTER TABLE, а sp_rename 'tablename', '_old_tablename' create tablename ( ... ) insert tablename ( ... ) select ... from _old_tablename А почему такая нелюбовь к ALTER TABLE, если брать именно справочник контрагентов то за последние пару лет он у нас пополнился всего пару раз с введением "КПП" для платежек и "ЕГРН" для отчетов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 18:54 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
Estets wrote: > Кстати вопрос аналогичный *locky*, как вы решили вопрос с типми > атрибутов? Все в строке или три поля datetime, money, varchar(255)? 4 типа: datetime,numeric(19,9),varchar(512),int нечто вроде Код: plaintext 1. 2. 3. 4. идентификатор параметра, Vx - значение параметра. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 18:58 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
EstetsЕсли клиент позволяет строить динамический запрос и достучаться до имен полей в БД, то SELECT * FROM ПАРТНЕРЫ WHERE ID=? и подставлять в шаблон значения соответствующих колонок по имени. Примерно так это реализовано у нас на PowerBuilder. Называть имена таблиц/колонок русскими буквами - "я на это пойтить не могу" (С). А иначе - меня юзеры не поймут, потому как им иногда приходиться редактировать шаблоны, в которых эти атрибуты написаны. Нет, все-таки не вижу гибкости в этом решении. EstetsКстати вопрос аналогичный locky , как вы решили вопрос с типми атрибутов? Все в строке или три поля datetime, money, varchar(255)? У меня сейчас два поля: VARCHAR(255), INT. Нужны будут другие типы - добавлю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 18:59 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
locky Код: plaintext 1. 2. 3. 4. идентификатор параметра, Vx - значение параметра. Так построены только "Контрагенты" или все справочники? Используются ли хранимые процедуры для обработки всего этого? И если не секрет на чем написана клиентская часть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 19:10 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
Ugnich AntonНазывать имена таблиц/колонок русскими буквами - "я на это пойтить не могу" (С). А иначе - меня юзеры не поймут, потому как им иногда приходиться редактировать шаблоны, в которых эти атрибуты написаны. Нет, все-таки не вижу гибкости в этом решении. Ну всегда возможны алиасы Код: plaintext 1. 2. 3. 4. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 19:17 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
Estets wrote: > Так построены только "Контрагенты" или все справочники? Используются ли > хранимые процедуры для обработки всего этого? И если не секрет на чем > написана клиентская часть? Так построены все справочники, за исключением ведущихся по периодам. Для такого рода информации используется обычная 3НФ Хранимые процедуры используются, да. Без них - никуда :-) Крайне сложно вместить "машину справочников" в client-side скрипты. Клиент написан на Delphi, ранние версии с применением только стандартных компонентов, текущая - применяется Developer Express (очень удобно в некоторых местах, хотя и тормознуто бывает не по детски). >Для фанатов экстремальной универсализации - возможен еще и гибридный >подход - в течение некоторого времени система работает по варианту 2, >накапливая список всех возможных атрибутов - а потом переходит на схему >ALTER TABLE, соответсвенно оптимизируя запросы :) Для фанатов :-) у меня система находится одновременно в нескольких НФ. Те же справочники - вроде бы с одной стороны как-бы 5НФ, с другой стороны - 2НФ. Кстати, применяется кэш-таблица, потому как схема вида объект-аттрибут является очень удобной для разработки, но и правда, с точки зрения быстродейтсвия бывает крайне страшна. Приходится лавировать.... Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 19:23 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
При использовании варианта c DDL операторами в любом виде нужно бы учесть как недостаток невозможность доступа к данным в момент дабавления(удаления, изменения) состава атрибутов сущности. Что бы ни говорили о том, что это де будет делаться раз в пятилетку практика показывает, что такие манипуляции по закону подлости требуются очень срочно и как раз в то время, когда всем нужно работать. А при большом объеме данных могут еще и выполняться недостаточно быстро. То есть простым "Выйти всем на 5 минут" не обойдешься. По моему, вариант с разворачиванием атрибутов по вертикали предпочтительней. По поводу типов, то: 1. Хранить все в текстовом поле + указание типа с последующими преобразованиями. 2. Виделить несколько полей разных типов(кому места не жалко). 3. Завести несколько таблиц для атрибутов разных типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 20:10 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
SergGol wrote: > 1. Хранить все в текстовом поле + указание типа с последующими > преобразованиями. вах! и морочится потом с этим. А ну как чилдрен умный запихнет значения "Вася" в параметр, который мы искренне считаем датой? и прочие, собссно, вкусности? > 2. Виделить несколько полей разных типов(кому места не жалко). Дык а что, NULL у нас уже место занимает, что его жалеть надоть? как по моему, дык первый вариант с энтой точки зрения - ваще жуть.... > 3. Завести несколько таблиц для атрибутов разных типов. Как показывает практика такое не всегда выгодно, но случаи бывают разные, я вполне могу себе и такое представить. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 20:27 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
SergGol wrote: > При использовании варианта c DDL операторами в любом виде нужно бы > учесть как недостаток невозможность доступа к данным в момент > дабавления(удаления, изменения) состава атрибутов сущности. Что бы ни > говорили о том, что это де будет делаться раз в пятилетку практика > показывает, что такие манипуляции по закону подлости требуются очень > срочно и как раз в то время, когда всем нужно работать. А при большом > объеме данных могут еще и выполняться недостаточно быстро. То есть > простым "Выйти всем на 5 минут" не обойдешься. По моему, вариант с > разворачиванием атрибутов по вертикали предпочтительней. По поводу Ха! Поле в таблицу добавляется пулей, если, конечно, не задать ему дефолтное значение. По поводу удаления - честно говоря не помню, давно чего-нить удалял. А вот добавление нового аттрибута в конструкцию "Объект-аттрибут"... это да, это есть прелесть. В моей реализации при добавлении нового параметра предполагается добавление оного же во все существующие экземпляры объектов нужного типа (во избежание конструкций left join при выборке параметров, когда у некоторых экземпляров ряд парамметров может отсутствовать) Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 20:31 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
А как все-же насчет вопроса с картинкой в этом топике ? Есть какие-нибудь варианты ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 20:46 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
locky Ха! Поле в таблицу добавляется пулей ... Тем не менее вопрос блокировки таблицы в момент изменения структуры должен быть решен. Понятное дело на таблицу такого рода завязано все. Предположим БД Oracle. В результате изменения сруктуры становятся недействительными куча объектов. Нужна перекомпиляция. Для мссиквела проще, но все равно проблема остается. Получается, что для незначительного в общем действия придеться решать много системных проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 20:50 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
SergGol Тем не менее вопрос блокировки таблицы в момент изменения структуры должен быть решен. Понятное дело на таблицу такого рода завязано все. Предположим БД Oracle. В результате изменения сруктуры становятся недействительными куча объектов. Нужна перекомпиляция. Для мссиквела проще, но все равно проблема остается. Получается, что для незначительного в общем действия придеться решать много системных проблем. С точки зрения ORACLE согласен, если рассматривать MS-Sybase никаких проблем с ALTER TABLE ADD Field не замечал. С удалением полей не связывался, т.е. при удалении атрибута, он удаляется из настройки, но колонка в таблице с данными остается. Что на мой взгляд правильно, что бы потом у пользователей не возникли вопросы "поле на форме нам конечно не нужно, а где данные которые мы туда забили?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 09:54 |
|
||
|
Хранение атрибутов сущности - как лучше ?
|
|||
|---|---|---|---|
|
#18+
GordenА как все-же насчет вопроса с картинкой в этом топике ? Есть какие-нибудь варианты ? Я бы добавил в таблицу ProductParams поле Val_OptionID. По логике, ведь, значение из списка параметров - это ещё один "тип данных" ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 16:50 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33195151&tid=1542732]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
145ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 417ms |

| 0 / 0 |
