أي شخص يستخدم SQL Server 2008 Hier النشاط الهرمي لتخزين بيانات الأنسان

StackOverflow https://stackoverflow.com/questions/577756

سؤال

لدي قاعدة بيانات Greeealogical (حول الأغنام في الواقع)، والتي يتم استخدامها من قبل المربين للبحث في المعلومات الجينية. في كل سجل تخزن عميد وأوسد. في طاولة منفصلة تخزن معلومات كاملة "نشمر" حتى أتمكن من معرفة شجرة العائلة الكاملة لأي حيوان دون تكرار من خلال قاعدة البيانات بأكملها ...

اكتشف مؤخرا نوع الهرمية المدمج في SQL Server 2008، على السطح، على السطح يبدو واعدا، لكنني أتساءل عما إذا كان أي شخص قد استخدمه بما يكفي لمعرفة ما إذا كان سيكون مناسبا في نوع التطبيق الخاص بي (أي الوالدين، عدة أطفال ) جميع العينات التي عثرت عليها / قرأت أكثر بكثير مع علاقات نوع الموظف / الموظف حيث يمكن أن يكون لدى مدرب معين موظفين متعددين، ويمكن لكل موظف أن يكون له رئيس واحد.

احتياجات التطبيق الخاص بي متشابهة، ولكن ليس نفسها تماما.

أنا متأكد من أنني سوف أحفر في هذه التكنولوجيا الجديدة على أي حال، لكن سيكون من الجيد اختصار بحثي إذا كان شخص ما يعرف بالفعل أنه لم يتم تصميمه بمثل هذه الأزياء التي ستسمح لي بالاستفادة منه.

أنا أيضا فضولية أي نوع من الأداء يرى الناس استخدام نوع البيانات الجديد هذا مقابل طرق أخرى تفعل الشيء نفسه.

هل كانت مفيدة؟

المحلول

لا أستطيع أن أرى كيف ستعمل؛ في التسلسل الهرمي المنتظم، هناك سلسلة واحدة إلى الجذر، لذلك يمكن تخزين المسار (وهو ما هو الثنائي يكون) إلى كل عقدة. ومع ذلك، مع الآباء المتعددين، هذا غير ممكن: حتى لو قمت بتقسيم Matriarchy و Partiarchy، لا يزال لديك 1 أمهات، 2 جدتان، 4 أمهات عظيم أمهات، إلخ (حتى حتى الوصول إلى بعض الأشخاص الأكثر إثارة للاهتمام "Scanerios ممكن، خاصة مع الثروة الحيوانية). لا يوجد مسار منطقي واحد لتشفيره، لذلك لا: لا أعتقد أن هذا يمكن أن يعمل في قضيتك.

أنا سعيد بتصحيحها، رغم ذلك.

نصائح أخرى

على افتراض أن كل غنم لديه أحد الوالدين الذكور ووالد الإناث، وأنه لا يمكن أن يكون الأغنام الوالد الخاص به (يؤدي إلى مفارقة زمنية أو زمنية)، ثم ماذا عن استخدام اثنين من التسلسل الهرمي؟

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

من خلال جعلها مجموعة مشتركة، ستعرف بشكل فريد كل خروف كمنتج التسلسل الهرمي للأمهات وهو التسلسل الهرمي الأب.

قد يكون هناك بعض المشكلات المتأصلة الكامنة هنا، لذلك تابع بحذر مع نماذج أولية بسيطة - ولكن في البداية يبدو أنها ستعمل من أجلك.

باستخدام اثنين من التسلسل الإيطالي منفصل للإشارة إلى الأب والأم ستعمل بشكل جيد.

ومع ذلك، فإنك بالتأكيد لن ترغب في استخدام تلك كمؤشر فريد من الصف، لأنها موقف من 2 إلى كثير. (يمكن أن يكون اثنين من الأغنام أطفالا متعددة.)

لا أرى أي شيء خطأ بطبيعته في استخدام هرميون للأسلحة - للأغنام على الأقل. بالنسبة للأشخاص، تكون العلاقات أكثر تعقيدا بكثير من "هذا الشخص يبدأ هذا الشخص"، لذلك من الواضح أن الاستخدام سيكون يقتصر على التكاثر.

SQL Server Hierarchyid ليس حلا قويا للعديد من الأسئلة التحليلية للأنرائيات. يعتمد على ORDAPPATH وكنت استخدمها لفترة من الأنساب؛ ولكن هناك العديد من السيناريوهات في الأنساب التي لا يمكن معالجتها بسهولة مع طرق ORDAPPAST لرسوم البيان الدراسية الموجهة. قاعدة بيانات الرسم البياني أكثر قوة وأنسجة بشكل جيد للعلاج في الأنساب. أنا استخدم NEO4J: http://stumpf.org/genealogy-blog/graph-databases-in-genealogy..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top