|
|
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
Есть таблица городов Города: Имя_города varchar() Есть таблица магазинов Магазин_id (PK), Город_id (FK) Есть таблица станций метро Имя_города(PK), Станция (PK) Надо сделать таблицу, где бы для магазинов хранились станции метро ближайшие (может быть много для одного магизина), но все станции из города магазина только. Казалось бы, можно сделать Магазин_id (PK), Имя_города(PK), Станция (PK) Но здесь не учитывается, что город, вообще-то, определяется из магазина. Если же сделать Магазин_id (PK), Станция (PK) То можно занести станции, которые в этом городе нет, что плохо. Как же делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 11:50 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
Разве не может ближайшей к магазину оказаться станция в другом городе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 14:47 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 14:54 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
Во, спасибо, именно то, что нужно!!!! Получается, что излишние констрейнты иногда полезно делать (например, как сдесь - ведь station_id сама по себе уникальна, тем более вместе с city_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 15:22 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
AlbatrossВо, спасибо, именно то, что нужно!!!! Получается, что излишние констрейнты иногда полезно делать (например, как сдесь - ведь station_id сама по себе уникальна, тем более вместе с city_id Решение красивое с академической точки зрения, если полностью абстрагироваться от физической природы моделируемых объектов. На практике свою ложку дёгтя уже кинул sti. Скорее, имеет смысл завести таблицу расстояний магазинов от станций метро, тогда задача получения списка ближайших станций сведётся к разработке и выполнению соответствующего SQL запроса, а необходимость построения вспомогательных отношений с дублированием данных отпадёт. При необходимости можно построить материализованное представление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 16:36 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
mcureenabПри необходимости можно построить материализованное представление. если принять как догму, что других СУБД кроме ORACLE не существует, то да... конечно можно. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 16:53 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
mcureenab AlbatrossВо, спасибо, именно то, что нужно!!!! Получается, что излишние констрейнты иногда полезно делать (например, как сдесь - ведь station_id сама по себе уникальна, тем более вместе с city_id Решение красивое с академической точки зрения, если полностью абстрагироваться от физической природы моделируемых объектов. На практике свою ложку дёгтя уже кинул sti. Скорее, имеет смысл завести таблицу расстояний магазинов от станций метро, тогда задача получения списка ближайших станций сведётся к разработке и выполнению соответствующего SQL запроса, а необходимость построения вспомогательных отношений с дублированием данных отпадёт. При необходимости можно построить материализованное представление. Поддерживаю. Тем более, что при открытии нового магазина или новой станции не придется перестраивать всю систему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 16:59 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
iscrafm mcureenabПри необходимости можно построить материализованное представление. если принять как догму, что других СУБД кроме ORACLE не существует, то да... конечно можно. :) Материализованное представление это механизм, который с некоторыми ограничениями можно не особо напрягаясь реализовать в любом приложении БД. В Оракле он встроен в СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 17:22 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
mcureenabНа практике свою ложку дёгтя уже кинул sti. Точнее, "абсолютно теоретическую ложку дегтя". Для магазина в Костроме, поверьте, все равно, какая именно станция метро окажется к нему ближайшей по "таблице расстояний магазинов от станций метро". Мало того, если для магазина, допустим, в Ивантеевке указать ближайшим метро "Медведково" - это будет верно математически (допустим - не проверял с линейкой) но неудачно практически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 17:28 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
Я лично жил в квартире в одном городе и ходил пешком до станции метро в другом. Она была значительно ближе, чем станция в "моем" городе. )) Правда было это не России. Поскольку мы не знаем всей задачи, то не можем корректно сравнивать решения. Я вообще с трудом представляю для каких целей может понадобиться знать только одну, ближайшую станцию метро. Более логичным кажется знать несколько ближайших станций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 17:42 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
stiЯ лично жил в квартире в одном городе и ходил пешком до станции метро в другом. Она была значительно ближе, чем станция в "моем" городе. )) Правда было это не России. Именно. В России таких конфигураций, сколь мне известно, нет; это я подразумевал. stiЯ вообще с трудом представляю для каких целей может понадобиться знать только одну, ближайшую станцию метро. Более логичным кажется знать несколько ближайших станций. Я вообще с трудом представляю, как можно рассуждать по теме, не прочитав даже стартового письма топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 17:46 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
softwarerэто я подразумевал. примечание sti имеет смысл для случаев (помимо случаев когда рядом находятся два города с метро, чего в Росиии нет), когда в одном из городов нет метро но есть магазин(ы) и расстояние от метро в одном городе до магазина в другом сравнимо с другими расстояниями между магазинами и метро в одном городе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 18:17 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
proposed amendmentпримечание sti имеет смысл для случаев Оно имеет смысл для случаев, когда кому-то будет не лень вводить сателлиты как отдельные города, но будет лень спроектировать БД с учетом сателлитов. Такая комбинация представляется мне довольно странной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 18:22 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
softwarer[quot proposed amendment]Такая комбинация представляется мне довольно странной. зависит... впрочем - чепуха все это, конечно - нет смысла дискутировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 18:31 |
|
||
|
не понимаю, как сделать
|
|||
|---|---|---|---|
|
#18+
mcureenab Материализованное представление это механизм, который с некоторыми ограничениями можно не особо напрягаясь реализовать в любом приложении БД. В Оракле он встроен в СУБД. оригинально. Особо не напрягаясь его обновлять при любых обновления depencies... Реализуйте, не напрягаясь, посмотрим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2007, 00:36 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34727647&tid=1544351]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 463ms |

| 0 / 0 |
