Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
7-2388
StasVashuk
2003-10-04 17:14
2004.02.02
Как сделать чтобы файлы выглядели для Explorer а как папки?


14-2330
VID
2004-01-10 01:17
2004.02.02
Окончательная и безоговорочная РУСИФИКАЦИЯ Windows 2000


1-2060
SayreX
2004-01-19 20:04
2004.02.02
Inno Setup 3 HELP!


1-2095
Floppy
2004-01-20 08:36
2004.02.02
Как определить, кем запущено приложение, непосредственно


1-2157
lego
2004-01-21 15:44
2004.02.02
Excel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский