আপনার সারি সংখ্যা দ্বিগুণ করার পরিবর্তে বন্ধুত্বের আশপাশে সূচকগুলি সংজ্ঞায়িত করতে হতে পারে:
CREATE TABLE person
(
person_id INT NOT NULL AUTO_INCREMENT,
...
PRIMARY KEY (person_id)
);
CREATE TABLE friendship
(
friend_of INT NOT NULL,
friend_to INT NOT NULL,
PRIMARY KEY (friend_of,friend_to),
UNIQUE KEY friend_to (friend_to,friend_of)
);
এইভাবে, আপনি সূচীর জন্য সঞ্চয় দ্বিগুণ করেছেন তবে টেবিলের ডেটার জন্য নয়। ফলস্বরূপ, ডিস্কস্পেসে এটি 25% সঞ্চয় হওয়া উচিত। মাইএসকিউএল ক্যোয়ারী অপটিমাইজার কেবল সূচক পরিসীমা স্ক্যানগুলি সম্পাদন করতে পছন্দ করবে, এজন্য সূচকগুলি coveringেকে দেওয়ার ধারণাটি এখানে ভাল কাজ করে।
কভারিং সূচকগুলির কয়েকটি সুন্দর লিঙ্ক এখানে দেওয়া হয়েছে:
বিচারকার্য স্থগিত রাখার আদেশ
বন্ধুত্ব যদি পারস্পরিক না হয় তবে অন্য ধরণের সম্পর্কের ভিত্তি আপনার রয়েছে: অনুসরণ করুন
বন্ধু_ও যদি বন্ধুত্বের বন্ধু না হয়, আপনি কেবল সেই সম্পর্কটিকে টেবিলের বাইরে রেখে যেতে পারেন।
আপনি যদি সমস্ত ধরণের সম্পর্কের জন্য সংজ্ঞা দিতে চান তবে তা পারস্পরিক হোক বা না হোক, আপনি সম্ভবত নিম্নলিখিত টেবিল বিন্যাসটি ব্যবহার করতে পারেন:
CREATE TABLE person
(
person_id INT NOT NULL AUTO_INCREMENT,
...
PRIMARY KEY (person_id)
);
CREATE TABLE relationship
(
rel_id INT NOT NULL AUTO_INCREMENT,
person_id1 INT NOT NULL,
person_id2 INT NOT NULL,
reltype_id TINYINT,
PRIMARY KEY (rel_id),
UNIQUE KEY outer_affinity (reltype_id,person_id1,person_id2),
UNIQUE KEY inner_affinity (reltype_id,person_id2,person_id1),
KEY has_relationship_to (person1_id,reltype_id),
KEY has_relationship_by (person2_id,reltype_id)
);
CREATE TABLE relation
(
reltype_id TINYINT NOT NULL AUTO_INCREMENT,
rel_name VARCHAR(20),
PRIMARY KEY (reltype_id),
UNIQUE KEY (rel_name)
);
INSERT INTO relation (relation_name) VALUES
('friend'),('follower'),('foe'),
('forgotabout'),('forsaken'),('fixed');
সম্পর্কের টেবিল থেকে, আপনি নিম্নলিখিতগুলি অন্তর্ভুক্ত করার জন্য সম্পর্কের ব্যবস্থা করতে পারেন:
- বন্ধুদের পারস্পরিক হতে হবে
- শত্রুরা পারস্পরিক হতে পারে বা নাও হতে পারে
- অনুসারীরা পারস্পরিক হতে পারে বা নাও হতে পারে
- অন্যান্য সম্পর্কগুলি ব্যাখ্যার সাপেক্ষে (ভুলে যাওয়া বা ত্যাগ করা বা প্রতিশোধ গ্রহণকারী দ্বারা নির্ধারিত)
- পসিবির সম্পর্ক আরও বাড়ানো যেতে পারে
সম্পর্কটি পারস্পরিক হোক বা না হোক, সমস্ত সম্পর্কের ক্ষেত্রে এটি আরও দৃust় হওয়া উচিত।