Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / частично повторяющиеся записи / 5 сообщений из 5, страница 1 из 1
19.01.2010, 08:34
    #36417155
Boss Artem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частично повторяющиеся записи
Упрощенно:
- таблица домов, содержащая информацию о доме (id, id_street, тип, серия, год постройки и еще куча подобных полей)
- справочник улиц (id и назв. улицы).

собственно такой вопрос - у некоторых домов может быть двойной адрес. Как лучше поступить? Была идея добавить в таблицу домов поле, что-то вроде id_alt_house, в которое записывать id дома по альтернативному адерсу. Но этот вариант как-то мне не совсем нравится. Добавлять в таблицу целых 2 поля типа id_alt_street и alt_house_number тоже как-то не вполне нравится. Есть идеи лучше?
...
Рейтинг: 0 / 0
19.01.2010, 08:38
    #36417158
П-Л
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частично повторяющиеся записи
Переходите от один-ко-многим к многие-ко-многим.
...
Рейтинг: 0 / 0
19.01.2010, 08:53
    #36417174
Boss Artem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частично повторяющиеся записи
Переходите от один-ко-многим к многие-ко-многим.
Как вы это видите на практике?

да, забыл написать, база mysql (MYISAM).
а требование такое чтобы возможно было по первому адресу найти второй и наоборот. Если вносить 2 записи с полем id_alt_house то порождается избыточность данных, если добавлять 2 поля id_alt_street и alt_house_number то у большинства записей они будут пустовать, хотя это скорее всего самый приемлимый вариант. Какие идеи?
...
Рейтинг: 0 / 0
19.01.2010, 09:17
    #36417203
Viktor_d
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частично повторяющиеся записи
Такой вариант:
Из таблицы домов поле id_street убираем. Создаем еще одну таблицу в которой храним связи между домами и улицами. Эта таблица содержит всего два поля id_hous и id_street. Тогда если дом стоит на двух улицах в этой таблице будет две записи. Например:
id_hous id_street
3 5
3 7
Но еще вроде номер дома тоже может быть разный? Тогда можно сюда добавить третье поле - номер дома.
id_hous id_street Number
3 5 34
3 7 43а
...
Рейтинг: 0 / 0
19.01.2010, 15:19
    #36418298
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
частично повторяющиеся записи
Viktor_dТакой вариант:
Из таблицы домов поле id_street убираем. Создаем еще одну таблицу в которой храним связи между домами и улицами. Эта таблица содержит всего два поля id_hous и id_street. Тогда если дом стоит на двух улицах в этой таблице будет две записи. Например:
id_hous id_street
3 5
3 7
Но еще вроде номер дома тоже может быть разный? Тогда можно сюда добавить третье поле - номер дома.
id_hous id_street Number
3 5 34
3 7 43аПо моему, ещё правильнее для такой задачи разделить бизнес-сущности "дом" и "адрес".
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / частично повторяющиеся записи / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]