![]() |
|
Модераторы: LSD |
![]()
|
|
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Как бы вы сделали хранение двух почтовых адресов человека?
Т.е. есть таблица со списком людей, но может быть такое, что у человека два почтовых адреса. Город, индекс, адрес - хранятся в отдельных столбцах. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Я делаю в таких ситуациях делаю так:
Таблица1 (люди): Id_people|Name_people Таблица2 (адреса): Id|Id_people|Adress|.....|..... |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 162 |
Guest = Alex
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: нет Всего: 102 |
дык пробел,запятая, тока с запятой, в мыле вроде как не используется ими наверно и разделять
-------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Alex т.е. в первой таблице хранишь поля, которые не могут повторяться, а во второй все остальные(двойные и тройные)?
|
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 162 |
угу
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
А если надо хранить еще по несколько телефонов (до 5) и по несколько еще каких-то параметров.
Заводить отдельную таблицу для каждого вида данных? |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 162 |
можно конечно и 5 полей под телефон создать или ввиде CommaText хранить, но я предпочитаю таблицу создавать т.к. сегодня заказчик говорит, что трех выше крыши ты пишешь, показываешь, а он тебе говорит, что срочно четвертый нужен и ты опять сидишь и пишеши, а так пусть хоть 1000 их задаст. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Спасибо. Решил сделать так:
данные для вынесения в отдельные таблицы, т.к. этих данных может быть несколько: - адрес - адрес партнера Таблица адресов: id|id_people|страна|индекс|город|адрес|телефон|факс а данные так: 1|1|страна|индекс|город|адрес|телефон|факс|адрес партнера 2|1|страна|индекс|город|адрес|телефон|факс|адрес партнера 3|1|страна|индекс|город|адрес|телефон|факс|адрес партнера то получаем делаем так, то решаем проблему с несколькими адресами. Таблица партнеров: id|id_people|адрес |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Admin еще как вараинт.
Если потом с данными будешь в PHP работать, то можно второй телефон, второе мыло и т.п. хранить на новой строчке, т.е. [email protected]\n [email protected] Вариантов пресечения со случайно введенным значением пользователя практически ноль. |
|||
|
||||
| igon |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 3 Всего: 21 |
Да, для рекомендуемой Alex классической схемы "master-details" именно так и придется поступать. И при запросах эти отдельные таблицы придется ОБЪЕДИНЯТЬ. Есть еще вариант, с точки зрения теории, возможно, весьма спорный, и пригодный далеко не в любом случае:
Получается узкая и длинная, как "кишка", но ОДНА таблица. Если все parameterValue одного типа (String, как, похоже, в задаче Admin'а), поле parameterType вообще не нужно. Добавление нового вида данных достаточно просто - надо его только достойно "обозвать". Запросы к таблице тоже особой сложностью отличаться не будут, ИМХО
ИМХО, лучше так: 1|1|страна|индекс|город|адрес|телефон|факс 2|1|страна|индекс|город|адрес|телефон|факс 3|2|страна|индекс|город|адрес|телефон|факс 4|2|страна|индекс|город|адрес|телефон|факс 5|3|страна|индекс|город|адрес|телефон|факс Таблица партнеров: id|id_people|id_partner 1|1|2 2|1|3 3|2|1 4|3|1 т.к. адрес есть и у people, и у его партнеров. По ID people можем определить его партнеров, а по id_partner=addressTable.id_people - их адреса. -------------------- Хотите поговорить об этом? |
||||||
|
|||||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Вопрос в том - будет ли поиск по адресу или нет. Если да - то нормализованные таблицы в любом виде, как Alex говорит - наиболее оптимально, если не будет - можно хоть в одном поле через точку с запятой...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Это черевато тем, что надо делать большой размер поля, и в определенных обстоятельствах его может не хватить. Как я понимаю речь идет о MySQL, а там VARCHAR всего 255 символов. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 162 |
А он mediumtext поставит -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
У нас на фирме ОЧЕНЬ большая база email (десятки миллионов), адресов длиннее 50 символов то-ли 2 то ли 3 штуки... Вероятность что 255 символов не хватит для 2х email ничтожна -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |