Общая таблица в базе данных или несколько данных?Хранение реального местоположения в БД - PullRequest
0 голосов
/ 11 февраля 2011

У меня есть то, что кажется простым, но может оказаться сложнее, чем предполагалось. Допустим, я пытаюсь отслеживать широту и долготу пользователей и предприятий. Сейчас у меня есть таблица с именем locTable, которая содержит 3 столбца: индекс, широта, долгота.

Таблица, в которой хранится информация для пользователей и предприятий, содержит FK для locTable. Это позволяет мне использовать одну таблицу для хранения данных о местоположении, однако я заметил, что выполнение запросов к этим данным может быть затруднено.

Теперь я могу хранить информацию о широте и долготе в каждой таблице для пользователей и предприятий, однако если мне нужно внести изменения в данные, мне придется обновить запросы вместе с двумя (или более) разными таблицами. *

Что бы вы все предложили? Разделяете таблицу или храните информацию отдельно?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2011

Места меняются? Если это так, отмените внешний ключ. У таблицы местоположения есть внешний ключ для таблицы пользователей и предприятий. Добавьте столбец даты в таблицу местоположений, и вы также можете отслеживать их по времени, просто добавляя новые местоположения.

В вашей модели вам, возможно, придется обновить две таблицы, чтобы обновить местоположение. При переключении внешнего ключа все, что вам нужно сделать, это добавить новые строки в таблицу местоположений при изменении местоположения.

0 голосов
/ 11 февраля 2011

Прежде всего, установите, является ли lat / long таблицей «поиска».Я бы не стал считать Lat / Long поиском.Это означает, что вы не будете хранить исчерпывающий список всех возможных комбинаций Lat / Long.Они часто указываются до 4 десятичных знаков.Теоретически, если у вас бесконечный масштаб, может быть бесконечная комбинация Lat / Long.

Я бы не считал это дублированием для хранения lat / long в обеих таблицах.Подумайте о датах рождения.Во избежание дублирования BirthDate у вас может быть таблица «BirthDates» со строкой для каждого дня за последние 300 лет.Это позволит избежать дублирования рождения людей, собак и компаний.Но это не дублирование в смысле «поиска».

Я не утверждаю, что хранить Lat / Long в собственной таблице неправильно.Я просто полагаю, что хранить лат / лонг в обеих таблицах может не считаться дублированием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...