![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Значения полей БД
DevExpress © (2009-01-23 12:52:00)Всем привет!
Есть база. Таблицы:
Table1(Name Varchar(20)):
Вася
Петя
...
Коля
Nable2(FirstName Varchar(20), LastName Varchar(20))
Так вот, при занесении данных в Table2, данные для FirstName выбираются из списка, полученного из Table1, после чего выбранное значение заносится в Table2. Это как, нормально, с точки зрения реляционных БД? БД 10 как работает - проблем не было. Просто интересно.
DevExpress (2009-01-23 17:03:00) [1]
> Ega23 © (23.01.09 15:54) [22]
> Anatoly Podgoretsky © (23.01.09 15:59) [23]
Да, хороший способ, так и сделаю, спасибо за совет.
Ega23 (2009-01-23 16:42:00) [2]
> Я впихиваю в два поля FirstName и LastName, у нас не используются
> отчества, в первое, то что считается имя, во второе все
> остальное и нет проблем.
А я сделал Name1, Name2 и Name 3. Первое - условная фамилия, второе - условное имя, третье - условное отчество.
Если у нас официально принята форма записи "Егоров Олег Вячеславович", то в той же Великобритании - "Олег Вячеславович Егоров".
А там - что хочешь, то и кидай. Конечный order by будет Order By Name1, Name2, Name3 :)
Anatoly Podgoretsky (2009-01-23 16:16:00) [3]> Ega23 (23.01.2009 16:08:26) [26]
Я впихиваю в два поля FirstName и LastName, у нас не используются отчества, в первое, то что считается имя, во второе все остальное и нет проблем.
Ega23 (2009-01-23 16:08:00) [4]
> У меня как раз программа для ОК
Ага, у меня - Бюро Пропусков.
Кстати, там и столкнулись с разными иностранными делегациями, когда хрен его знает, как данные какого-нибудь индуса в привычные ФИО впихнуть.
Anatoly Podgoretsky (2009-01-23 16:04:00) [5]> Ega23 (23.01.2009 16:01:24) [24]
У меня как раз программа для ОК
Ega23 (2009-01-23 16:01:00) [6]
> Я именно этот прием использую, с выпадающим списком и инкриментным
> поиском, пользователям удобно. Если такого значения нет,
> то пользователь вводит свое и в следующий раз оно уже будет
> в списке.
Угу, я тоже когда с базой по персоналу работал так делал.
Anatoly Podgoretsky (2009-01-23 15:59:00) [7]> Ega23 © (23.01.09 15:54) [22]
Я именно этот прием использую, с выпадающим списком и инкриментным поиском, пользователям удобно. Если такого значения нет, то пользователь вводит свое и в следующий раз оно уже будет в списке.
Ega23 (2009-01-23 15:54:00) [8]
> спасибо за совет, но мне с ней работать надо "как есть"
Как есть - это дублирование данных. Хочешь сделать небольшую автоматизацию - выбирай из рабочей таблицы имена (фамилии, отчества) через
select distinct name from table, полученные данные загоняй в ComboBox со стилем csDropDown. Хочешь - выбираешь имя (фамилию) из списка. Не хочешь - вносишь ручками.
Смысла во второй справочной таблице в твоей реализации я не вижу.
DevExpress (2009-01-23 15:53:00) [9]
> Sergey13 © (23.01.09 15:47) [20]
это я согласился с Анатолием и похвалился:)
Sergey13 (2009-01-23 15:47:00) [10]> [18] DevExpress (23.01.09 15:36)
ну вот про это.
> ну да, там порядка 80 таблиц и все так сделаны:). Индексов нету.
DevExpress (2009-01-23 15:36:00) [11]
> Anatoly Podgoretsky © (23.01.09 15:34) [17]
Сорри, действительно попутал ветку
DevExpress (2009-01-23 15:36:00) [12]
> Ega23 © (23.01.09 15:30) [15]
спасибо за совет, но мне с ней работать надо "как есть"
> Sergey13 © (23.01.09 15:31) [16]
Да не, говорю как есть - отчего недоверие? А на что жаловаться-то?
Anatoly Podgoretsky (2009-01-23 15:34:00) [13]> DevExpress (23.01.2009 15:24:14) [14]
На этом форуме между прочим, а серьезно в Потрепаться.
Sergey13 (2009-01-23 15:31:00) [14]> [13] DevExpress (23.01.09 15:23)
Что-то говорит мне, что или ты чего то не то говоришь либо жаловаться у вас запрещено коллективным договором. 8-)
Ega23 (2009-01-23 15:30:00) [15]1. У некоторых людей может быть составное имя, фамилия и отчество.
Пример: Анна-Мария, Магомед-Гаджи, Бонч-Бруевич, и т.п.
2. Полное имя человека может быть больше чем обычное ФИО.
Пример: барон Пампа дон Бау но Суруга но Гатта но Арканара, Ахамат Хаким-Заде Ниизи, Лис Гарсия Педро и т.п.
3. У различных национальностей может вообще отсутствовать понятие Фамилия или Отчество (AFAIK, у монголов фамилии в нашем понимании нет).
Поэтому. Вся эта нормализация в конкретном данном случае может быть применена только с очень жёсткими оговорками. Ну, типа, иностранец никогда в эту базу не попадёт.
А в целом - Заведи поле FullName varchar(255) и в него пиши.
DevExpress (2009-01-23 15:24:00) [16]
> Jeer © (23.01.09 15:20) [11]
ну обсуждают же люди погоду?
DevExpress (2009-01-23 15:23:00) [17]
> Jeer © (23.01.09 15:18) [9]
> Почитай для начала о естественных и искусственных ключах.
>
ммм.... Да я-то знаю! Мне просто интересно, как я и написал в первом посте.
> Sergey13 © (23.01.09 15:17) [8]
SQL Server 2005 - это сейчас, первоначально, наверное более ранняя была.
Народу мало - чел 10
Объем не знаю(сейчас нет доступа), а по записям, где-то 4млн(в основной таблице, где есть три поля text:)).
Anatoly Podgoretsky (2009-01-23 15:22:00) [18]> DevExpress (23.01.2009 15:14:06) [6]
Не одно и тоже, в этом случае нет дублирования, это уже чистый справочник и внешние ключи.
В первом случае это вообще не ключ, а просто лишняя таблица.
Jeer (2009-01-23 15:20:00) [19]
> не получится - нету исходников прил, которая работает с
> этой БД
А чего тогда обсуждать ?
Работает и ладно - тем более 10 лет :)
DevExpress (2009-01-23 15:18:00) [20]
> не получится - нету исходников прил, которая<>/b работает с
> этой БД
которОе