Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
ВнизПорядок полей в структуре таблицы. Найти похожие ветки
← →
Aleks_S (2004-01-07 16:07) [0]Подскажите пожайлуста, как программно изменить порядок полей в структуре таблицы, т.е. не указать в каком порядке они будут выводиться в результате запроса, а изменить их порядок в самой БД. Спасибо.
← →
Balu (2004-01-07 16:33) [1]По моему никак.
Я делаю через пересоздание таблицы (т.е. переименовываю исходную, создаю новую с тем же именем и с нужным порядком полей, а потом переношу данные из измененной таблицы. Ну и в конце DROP переименованной таблице).
Может кто знает путь по проще?
← →
Polevi (2004-01-07 17:09) [2]а какой смысл в этом ?
← →
Balu (2004-01-07 17:38) [3]Например, в ходе развития проектов надо добавить bit полей, и , например, их было 4-е (и стояли они в "середине" и надо добавить ещё парочку.
← →
Anatoly Podgoretsky (2004-01-07 18:40) [4]Это твой смысл, в котором тоже нет особого смысла, а вот какой смысл у автора, пусть сам расскажет.
← →
Aleks_S (2004-01-07 21:04) [5]А смысл такой.
Создается приложение для риелторской конторы. Поля и последовательность ввода информации для клиентов и объектов недвижимости должны настраиваться.
Вначале я создавал отдельную таблицу ClientAttrs[AttrID, Name, Order], где Name-имя клиента, а Order(int)- порядок в котором Namы будут выводиться.
Затем создается таблица Clients[ClientID, OrderID], которая по OrderID связывается с таблицей Orders.
Затем в таблицу ClientValues[ClientID, AttrID, Value) заносится введенная информация (ClientID-не индекс., AttrID - ID из ClientAttrs, Value - значение). Причем все значения Value приходится делать varchar. Не знаю как вам, а мне совсем не нравиться.
Вот если бы иметь одну таблицу, например Clients[ClientID, Attr1,..,AttrN], и иметь возможность модифицировать поля, было бы классно.
Просто с БД я работаю не так давно, поэтому не обессудьте. Сейчас разбираюсь с системными таблицами syscolumns и sysobjects, может чтонибудь получится.
← →
sniknik (2004-01-08 01:27) [6]> Поля и последовательность ввода информации для клиентов и объектов недвижимости должны настраиваться.
последовательность ввода это одно, но никакак не связано с порядком полей в таблицах. легко можно редактировать 10поле первым после 3 и сразу 11-е. в любом порядке. или же в запросе составить нужный порядок. а физическое местоположение поля роли не играет. добавь в конец списка, чем плохо?
> Причем все значения Value приходится делать varchar. Не знаю как вам, а мне совсем не нравиться.
чем тебе не нравится тип varchar? аргументируй. хотябы в сравнении с чем? если вынужден цифровые или даты в тексте хранить это одно а если varchar по сравнению с char/text то почему? кождое для своих нужд свои достоинства/недостатки.
← →
Balu (2004-01-08 01:42) [7]Aleks_S
Ты конечно молодец, ты этот вопрос и на sql.ru задал ДВАЖДЫ, на скольких форумах ещё отпостился?
Сначала разберись в сути своей задачи, а потом народу мозги пудри.
← →
Ильш (2004-01-08 09:33) [8]
> Сначала разберись в сути своей задачи, а потом народу мозги
> пудри.
Соврешенно согласен!
Неправильная постановка задачи - ведет к таким казусам!
← →
Desdechado (2004-01-08 12:53) [9]порядок хранения и отображения полей - 2 большие разницы, как говорят в Одессе
Отображение настраивай как хочешь. Сохранять позиции конкретных колонок можешь как локально (типа каждый юзер винды сам под себя) или в БД (одно на всех или каждый юзер БД для себя).
А порядок полей при хранении не имеет никакого значения. Главное при этом не использовать запросов вида SELECT * FROM - это вообще дурной тон, да и к ошибкам ведет
← →
Aleks_S (2004-01-08 19:34) [10]Сам разобрался.
В таблице syscolumns есть поле colorder, где можно изменять значения порядка полей при хранении. А какой таблице они принадлежат можно узнать из поля id, который соответствует id изменяемой таблицы в таблице sysobjects. (Извиняюсь за тафталогию.)
Balu, Ильш
> Ты конечно молодец, ты этот вопрос и на sql.ru задал ДВАЖДЫ,
> на скольких форумах ещё отпостился?
>
> Сначала разберись в сути своей задачи, а потом народу мозги
> пудри.
1. Вопрос я задал конкретный и объяснил для чего мне это нужно.
2. Ну и х.. что на SQL.ru вопрос тоже задал, все равно никто не ответил, пока сам не разобрался.
Советчики, мля.
P.S. Все равно всем спасибо, не все же время чужими мозгами работать.
← →
Vlad (2004-01-08 19:42) [11]
> Aleks_S © (08.01.04 19:34) [10]
ИМХО, изменять системные таблицы - нехорошая практика.
Когда нибудь нарвешься на неприятность.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.062 c