У меня есть таблица ключей связанных сущностей.
Например, у меня есть следующие отношения в моей таблице отношений: < /p>
entitykey1 < /th>
entitykey1 < /br />
entitykey1 < /br />
entity /> < /thead>
a < /td>
x < /td>
< /tr>
b < /td>
l < /td>
< /tr>
l < /td>
/> e < /td>
x < /td>
< /tr>
e < /td>
g < /td>
< /tr>
x < /td>
< /tr>
x < /td> /> < /tr>
x < /td>
o < /td>
< /tr>
y < /td>
l < /td>
< /tr>
< /tbody> l < /td>
< /tr>
< /tbody>
< /td> < /td>
< /tr>
< /tbody>
/> Если одна сущность связана с другой, она входит в эту таблицу.
Если одна сущность связана со вторым, а второе связано с третьей, то все три связаны.
Другими словами, это своего рода сеть отношений.
может быть какое -либо число отношений в группе. сущности. < /strong> < /p>
Проблема, которая у меня есть, заключается в том, что у меня есть так много этих отношений (близко к миллиарду и быстро растущему). Я не могу найти достойный способ выполнения, чтобы назначить мастер -ключ ко всем членам группы. < /p>
Таким образом, A связан с x, e, o, z
b, связан с L, y < /p> . need to have the following in a master key table, or as a third column in my relationship table above:
So either a second table:
MasterKey
EntityKey
< /tr>
< /thead>
1 < /td>
a < /td>
< /tr>
1 < /td>
x
< /td>
x
< /td>
x
< /td>
x
< /td>
x 1 < /td>
e < /td>
< /tr>
1 < /td>
g < /td>
< /tr>
1 < /td>
< /tr>
1 />
1
Z
2
B
2
l < /td>
< /tr>
2 < /td>
y < /td>
< /tr>
< /tbody>
< /table> < /div>
или как третий столбец в основной таблице: < /p div>
или как третий столбец в основной таблице. class = "s-table-container">
Masterkey < /th>
EntityKey1 < /th>
entityKey2 < /th>
< /tr>
< /tr>
< /tr>
< /tr>
< /tr>
1 < /td>
a < /td>
x < /td>
< /tr>
2 < /td>
b < /td>
l < /td>
< /td>
/> 1 < /td>
e < /td>
x < /td>
< /tr>
1 < /td>
e < /td>
g < /td>
< /td>
/> 1 < /td>
x < /td>
z < /td>
< /tr>
1 < /td>
x < /td>
o < /td>
< /td>
/> 2
y
l
Не уверен, что мне нравится третий столбец, потому что для получения отношения B -n -nempt a tom, потому что для меня требуется вывод, чтобы я не уверен. /> Я пробовал различные формы курсоров и рекурсивных CTE (рекурсивные CTE не являются одной из моих сильных сторон), чтобы решить эту проблему.
, но при работе с почти миллиардами отношений я просто не могу придумать запрос, который работает. Однако я вообще не обязан использовать SQL Server. Я мог бы так же легко поместить это в базу данных NOSQL, чтобы просто добавить каждую связанную сущность в документ, который ключ Mater (у меня буквально нет опыта работы с NOSQL, но я готов учиться). Или я мог бы создать многопоточное приложение в C#, которое запускает несколько циклов группировки параллельно и работает против SQL Server, NoSQL или SQLite или ...? Там, где количество строк, которые необходимо сгруппировать во время группировки, будет значительно уменьшено после каждого последующего прогона. Но я не уверен, что меняет алгоритм.
Подробнее здесь: https://stackoverflow.com/questions/795 ... ted-entiti
SQL Server (или C#, NOSQL, SQLITE), присваивая мастер -ключ многим связанным объектам ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение