powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД
21 сообщений из 21, страница 1 из 1
Проектирование БД
    #39614850
Sout
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется сущность Организации образовательных курсов, у каждого курса имеется свой адрес: город, улица, дом, корпус. Как правильно спроектировать, понятно что город и улица это отдельные сущности, дом и корпус тоже выносить в отдельные сущности или есть правильной способ решения?
...
Рейтинг: 0 / 0
Проектирование БД
    #39614864
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sout,

Так вы предложите свой вариант для начала. А то обсуждать пока нечего. Проектировать за вас нет желания.
...
Рейтинг: 0 / 0
Проектирование БД
    #39614870
Sout
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

Ну мой вариант, город, улицу, дом, корпус вынести в отдельные сущности, но я уверен что есть более лучший вариант, до которого сам я увы не могу додуматься, вот и спрашиваю совета здесь
...
Рейтинг: 0 / 0
Проектирование БД
    #39614880
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoutИмеется сущность Организации образовательных курсов, у каждого курса имеется свой адрес: город, улица, дом, корпус. Как правильно спроектировать, понятно что город и улица это отдельные сущности, дом и корпус тоже выносить в отдельные сущности или есть правильной способ решения?Нет. Есть таблица адресов: ID, город/ул/ и пр.
Для вас важен лишь ID (для ссылок в проекте). А подробный адрес может быть написан прописью.
...
Рейтинг: 0 / 0
Проектирование БД
    #39614889
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SouthVostt,

Ну мой вариант, город, улицу, дом, корпус вынести в отдельные сущности, но я уверен что есть более лучший вариант, до которого сам я увы не могу додуматься, вот и спрашиваю совета здесь

Более лучший для каких целей? ) Наверное таки надо базу проектировать под конкретные задачи, а не просто в вакууме.
...
Рейтинг: 0 / 0
Проектирование БД
    #39614891
Sout
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSV, как вы говорите быть не должно, это получается ID 1 Москва, Пушкина, Дом2, Корпус 1; ID2 Москва, Иванова, Дом1, Корпус 4. Один и тот же город имеют два уникальных ключа, тоже самое может получится и с улицами, такой подход не подойдет
...
Рейтинг: 0 / 0
Проектирование БД
    #39614902
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoutИмеется сущность Организации образовательных курсов, у каждого курса имеется свой адрес: город, улица, дом, корпус. Как правильно спроектировать, понятно что город и улица это отдельные сущности, дом и корпус тоже выносить в отдельные сущности или есть правильной способ решения?

Что города выделить наверное логично, а вот остальное для ведения списка курсов сомневаюсь. Количество курсов ограничено. Если задача просто указать адрес где будет проводиться курс - ну и прямо строкой все после города можно записать.
Сомневаюсь, что может возникнуть задача поиска курсов по улице или более детальной информации.
...
Рейтинг: 0 / 0
Проектирование БД
    #39614923
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sout,

Однозначно правильного (в смысле - хорошего во всех отношениях) варианта не существует. Есть разные, от банального текстового поля "Адрес", до EAV-монстров, к которым без ста грамм запрос не составишь. Какой выбирать - зависит от требований к системе: какие запросы будут нужны.

При попытке сделать аккуратную реляционную модель "город" - "улица" - "дом", одна из проблем - пропуск уровней иерархии, и альтернативные иерархии. То есть существуют населенные пункты, в которых либо вообще нет улиц, а сразу номера домов (небольшие села), либо в которых есть микрорайоны, а уже в них либо улицы, либо сразу номера домов. Ну и то, что не у каждого дома есть строения и корпуса, это понятно. Поищите на форуме, по поводу адресов были жаркие дискуссии.
...
Рейтинг: 0 / 0
Проектирование БД
    #39614940
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoutОдин и тот же город имеют два уникальных ключа, тоже самое может получится и с улицами,
такой подход не подойдет

Почему? Какую задачу этот подход не позволит решить (будет решать проктостоматологически)?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проектирование БД
    #39614973
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSoutОдин и тот же город имеют два уникальных ключа, тоже самое может получится и с улицами,
такой подход не подойдет

Почему? Какую задачу этот подход не позволит решить (будет решать проктостоматологически)?

Задачу контроля корректности адреса, очевидно - другое дело что не факт, что для "организации образовательных курсов" она сколько-нибудь актуальна.
Получение данных "а сколько курсов было проведено в Москве?" - тоже будет, ээ, оставлять желать лучшего.

Я бы выделял справочник в случае, если ожидается, что на более 10% значений справочника будут 2 и более ссылки.
Т.е. если вероятны 2 и более курса на одной улице - выделять справочник улиц, если нет - то нет. Если вероятны 2 и более курса в одном доме на одной улице - выделять справочник домов, если нет - то нет.
...
Рейтинг: 0 / 0
Проектирование БД
    #39614986
Sout,

автору каждого курса имеется свой адрес: город, улица, дом, корпус
так "адрес" у курса имеется или "город", "улица", "дом", "корпус"?
...
Рейтинг: 0 / 0
Проектирование БД
    #39614990
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SouthVostt,

Ну мой вариант, город, улицу, дом, корпус вынести в отдельные сущности, но я уверен что есть более лучший вариант, до которого сам я увы не могу додуматься, вот и спрашиваю совета здесь

Ну вынесите каждое поле в отдельные сущности. Это самый правильный вариант, платиновая архитектура.
...
Рейтинг: 0 / 0
Проектирование БД
    #39614994
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЗадачу контроля корректности адреса, очевидно - другое дело что не факт, что для
"организации образовательных курсов" она сколько-нибудь актуальна.

Вот именно. Нет задачи - нет проблемы. (Почти (с).)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проектирование БД
    #39615259
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoutLSV, как вы говорите быть не должно, это получается ID 1 Москва, Пушкина, Дом2, Корпус 1; ID2 Москва, Иванова, Дом1, Корпус 4. Один и тот же город имеют два уникальных ключа, тоже самое может получится и с улицами, такой подход не подойдетВы, уважаемый, какую задачу решаете ???
Почему не может быть двух почти одинаковых адресов, отличающихся только корпусом или домом ?

Кстати любой населенный пункт требует обязательного указания района/области. Даже улицы в большом нп могут быть неуникальными (н-р при поглощении пригородов). Нежданчик, да ?
...
Рейтинг: 0 / 0
Проектирование БД
    #39615318
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoutНу мой вариант, город, улицу, дом, корпус вынести в отдельные сущности, но я уверен что есть более лучший вариант, до которого сам я увы не могу додуматься
Подключите ФИАС и используйте id оттуда.
...
Рейтинг: 0 / 0
Проектирование БД
    #39615712
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoutИмеется сущность Организации образовательных курсов, у каждого курса имеется свой адрес: город, улица, дом, корпус. Как правильно спроектировать, понятно что город и улица это отдельные сущности, дом и корпус тоже выносить в отдельные сущности или есть правильной способ решения?

Правильный ответ сильно зависит от задачи.
Вполне возможно, что удобнее хранить все в одном поле.
Или наоборот не хранить текстовый адрес, а только координаты из сервисов карт.

А в общем случае лучше взять уже готовый справочник и не изобретать велосипед. :-)
...
Рейтинг: 0 / 0
Проектирование БД
    #39615774
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulне хранить текстовый адрес, а только координаты из сервисов карт

Прикольно будут выглядеть такие координаты напечатанными на конверте.
...
Рейтинг: 0 / 0
Проектирование БД
    #39615791
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulА в общем случае лучше взять уже готовый справочник и не изобретать велосипед. :-)Еще более правильный ответ - нанять специалиста и не забивать голову такой чепухой. Пусть он парится. :)
...
Рейтинг: 0 / 0
Проектирование БД
    #39615815
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЕще более правильный ответ - нанять специалиста и не забивать голову такой чепухой. Пусть он парится. :)

А если он и есть нанятый специалист? :)
...
Рейтинг: 0 / 0
Проектирование БД
    #39615820
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherА если он и есть нанятый специалист? :)
Это сообщение следовало бы сформулировать так: "... Обратитесь к системному администратору. Если Вы и есть системный администратор, обратитесь к компетентному системному администратору".
...
Рейтинг: 0 / 0
Проектирование БД
    #39615893
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulПравильный ответ сильно зависит от задачи.
Вполне возможно, что удобнее хранить все в одном поле.
Или наоборот не хранить текстовый адрес, а только координаты из сервисов карт.

А в общем случае лучше взять уже готовый справочник и не изобретать велосипед. :-)

Полностью согласен. Но что например если это Казахстан, например, и там нет такого справочника?
Так что от задачи исходить надо. У меня была похожая задача, пришлось искать "золотую" середину. Что и с детальным адресом и без была возможность работы.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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