Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Значения полей БД


Страницы:   1 2

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 работает с
> этой БД

которОе


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо