Любой использовал SQL-сервер 2 008 типов HierarchialID, чтобы хранить данные генеалогии

Если вам нужно, и вы хотите иметь только предложения ANDed, а ваши предложения - это простые проверки на равенство (как предполагает формулировка вашего вопроса) ... тогда сделайте ваш *ngIf="condition(item, conditions)"

Здесь conditions будет быть переменной-членом класса, представляющей собой массив объектов вида {key: string, value: any}, который вы бы построили в этом массиве вместо вашего строкового выражения, а condition была бы функцией, которую вы определили в своем наборе текста, что-то вроде это:

condition(item, conditions) {
  if(!item) return false;
  if(!Array.isArray(conditions) || (conditions.length === 0)) return true;
  for(let i = 0; i < conditions.length; i++) {
    if(item[conditions[i].key] !== conditions[i].value) {
       return false;
    }
  }
  return true;
}
6
задан Rob Kam 7 May 2009 в 19:29
поделиться

2 ответа

Я не вижу, как это работало бы; в регулярной иерархии существует единственная цепочка к корню, таким образом, это может сохранить путь (который является тем, что двоичный файл) к каждому узлу. Однако с несколькими родителями, это не возможно: даже при разделении матриархата и partiarchy у Вас все еще есть 1 родительский элемент, 2 бабушки, 4 прабабушки, и т.д. (даже не входящий в некоторые более "интересные" scanerios возможные, особенно с домашним скотом). Нет никакого единственного логического пути для кодирования, таким образом, нет: Я не думаю, что это может работать в Вашем случае.

Я рад быть исправленным, все же.

3
ответ дан 10 December 2019 в 00:45
поделиться

Принятие каждой овцы имеет одного штекерного родителя и одного розеточного родителя, и что никакие овцы не могут быть своим собственным родителем (ведущий к Застенчивому Временному Paradox), затем что относительно того, чтобы использовать два HierarchyIDs?

CREATE TABLE dbo.Sheep(
    MotherHID hierarchyid NOT NULL,
    FatherHID hierarchyid NOT NULL,
    Name int NOT NULL
)
GO
ALTER TABLE dbo.Sheep 
ADD CONSTRAINT PK_Sheep PRIMARY KEY CLUSTERED (
    MotherHID,
    FatherHID
)
GO

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

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

5
ответ дан 10 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: