Вопрос о хранении данных, которые должны были быть в одной таблице - PullRequest
0 голосов
/ 21 мая 2009

Программное обеспечение, с которым я работаю, имеет 2 таблицы: потенциальный клиент и клиент. Когда мы продаем наш продукт кому-то, в таблице клиентов создается запись с данными из таблицы потенциальных клиентов (а также с некоторыми дополнительными данными).

В настоящее время нет связи между двумя таблицами. Лучшее, что существует сейчас, - это то, что у ведущего объекта есть функция, которая будет выполнять поиск в таблице клиентов записи с тем же номером телефона (надеясь, что она не изменилась за последние 5-10 лет, когда они были нашими клиент - при таком поиске по каждому отведению получается пересечение% 82 в таблице клиентов). Обратного поиска нет (клиент-> лидерство).

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

Я подумал о том, чтобы сохранить fk от ведущего клиента и fk от заказчика в ведущем ... но используемый мной ORM будет переполнен при загрузке связанных записей при наличии fkeys.

Объединение двух таблиц в одну личную таблицу - это то, что я хотел бы сделать, имея битовый флаг, определяющий, является ли человек клиентом или нет ... но, увы, временные рамки и бюджеты не позволяют.

Я не совсем знаю, что делать.

Ответы [ 2 ]

2 голосов
/ 21 мая 2009

Вам действительно нужно идти в обоих направлениях (т. Е. 1: M ведет к клиентам и 1: M к клиентам)? Если так, составной стол, сидящий "между" этими двумя, мог быть способом пойти. Каждая запись будет содержать PK от клиента и PK от ведущего (связывая два).

Если вам просто нужно узнать, сколько лидов связано с клиентом, я бы добавил FK к лидам (указывая на PK в клиентах).

1 голос
/ 21 мая 2009

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

И вам нужно добавить еще одну таблицу связывания (соединения) для соединения существующих таблиц. Эта таблица будет содержать два столбца: LeadID и CustomerID. Каждая строка содержит идентификаторы соответствующих строк в таблицах Customer и Lead.

Внешние ключи соединят ваши таблицы: LeadID -> столбец ID в таблице Lead; CustomerID -> столбец ID в таблице Customer.

...