主页
Top.Mail.Ru Yandeks.Metrika
论坛:“基地”;
当前存档: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 изменяемой таблицы в таблице 系统对象. (Извиняюсь за тафталогию.)

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.59 MB
时间:0.036 c
1-2149
天星
2004-01-21 18:06
2004.02.02
Замена точки на запятую


1-2180
xfrost
2004-01-21 12:41
2004.02.02
Как создать Image на TabSheet


14-2275
Petr V. Abramov
2004-01-09 16:46
2004.02.02
MMP的照片报道


14-2346
klyonov
2004-01-13 16:37
2004.02.02
图片


1-2162
SPIRIT2
2004-01-21 15:23
2004.02.02
TRadioGroup. Строки вылезают за пределы радиогрупа





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本性玩偶 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский