Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

डेटाबेस डिजाइन, श्रेणी में आइटम, उप श्रेणी और थीम

आइए आपको एक विचार दिखाते हैं कि कौन सा IMHO मुझे लगता है कि इसका उपयोग करना अच्छा है:पहले श्रेणी तालिका बनाएं:

CREATE TABLE `category` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `category_father_id` int(11) DEFAULT '0',
  `is_active` tinyint(1) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `category_father_id` (`category_father_id`),
  CONSTRAINT `constraint_name` FOREIGN KEY (`category_father_id`) REFERENCES `category` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;

फिर अपनी उत्पाद तालिका के लिए आप इसे वैसे ही रख सकते हैं:

CREATE TABLE Product (ProductID int, Description nvarchar(100));

अब आम तौर पर आपके पास एक उत्पाद हो सकता है जो कई श्रेणियों से संबंधित होता है। इसलिए, इसे करने का सही तरीका उत्पाद और श्रेणी के बीच m:n संबंध होना है। और इसे जोड़कर किया जा सकता है:

create table product_category(
ProductId int(11) not null,
CategoryId int(11) not null,
unique (ProductId,CategoryId),
foreign key (ProductId) references Product (ProductID) on update cascade on delete cascade,
foreign key (CategoryId) references category (id) on update cascade on delete cascade
)engine=innodb;

और आप थीम को जस का तस रख सकते हैं।

आप देखेंगे कि category तालिका category_father_id . का उपयोग करके नेस्टिंग श्रेणियों को संभाल सकती है इस पर विदेशी कुंजी स्वयं।

लेकिन ध्यान रखने योग्य बात यह है कि आखिरकार, यह हमेशा आपके डोमेन/व्यावसायिक तर्क के बारे में होता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. किसी क्वेरी के बाद PHP/MySQL में डेटाबेस पंक्ति से मान 0 लौटाना

  2. कैसे mysql udf json_extract 0.4.0 का उपयोग कर एक json सरणी से पंक्तियों को निकालने के लिए?

  3. MySQL में केस स्टेटमेंट का उपयोग कैसे करें

  4. मैं अपने इनपुट से इमोजी वर्णों को कैसे फ़िल्टर कर सकता हूं ताकि मैं MySQL <5.5 में सहेज सकूं?

  5. SQL विभिन्न डेटाबेस में एकाधिक तालिकाओं से डेटा सम्मिलित करें