PDA

View Full Version : سوال: ذخیره چند دسته بندی برای یک محصول در دیتابیس



amirali_bk
یک شنبه 09 دی 1397, 21:43 عصر
سلام دوستان
وقت بخیر

روش شما برای اینکار چیه ؟ فرض کنید ما یک محصول داریم که توی چندتا دسته میخوایم تیک بزنیم و تو دیتابیس ذخیره کنیم . اول اینکه دسته هارو به چه شکل تو دیتابیس ذخیره کنیم با چه فرمت و روشی ؟
بعد از اونور اگه بخوایم مثلا ی محصول رو بر اساس دسته نشون بدیم چجوری اطلاعات رو میگیرید ؟
یا مثلا اگه بخواید مطالب یک دسته خاص رو نشون بدید چطور اینکارو میکنید ؟

البته این بیشتر جنبه سوال داره چون من ی روشیو رفتم نتیجه خوب نداشت .
ممنون:قلب:

peymang
دوشنبه 10 دی 1397, 01:17 صبح
این عکس رو یه نگاه بندازید شمای دیتابیس وردپرس هست
https://codex.wordpress.org/images/2/25/WP4.4.2-ERD.png

معمولا برای این کار یه جدول واسط در نظر می گیرن که فقط کلید جدول هایی که با هم رابطه دارن داخلش هستن
مثال ساده:






-- ----------------------------
-- Table structure for cat
-- ----------------------------
DROP TABLE IF EXISTS "cat";
CREATE TABLE "cat" (
"id" INTEGER NOT NULL,
"title" TEXT,
"url" TEXT NOT NULL,
PRIMARY KEY ("id"),
CONSTRAINT "url_uniqe" UNIQUE ("url" ASC)
);

-- ----------------------------
-- Table structure for post
-- ----------------------------
DROP TABLE IF EXISTS "post";
CREATE TABLE "post" (
"id" INTEGER NOT NULL,
"text" TEXT,
"title" TEXT,
PRIMARY KEY ("id")
);

-- ----------------------------
-- Table structure for post_cat_rel
-- ----------------------------
DROP TABLE IF EXISTS "post_cat_rel";
CREATE TABLE "post_cat_rel" (
"id" INTEGER NOT NULL,
"post_id" INTEGER,
"cat_id" INTEGER,
PRIMARY KEY ("id"),
FOREIGN KEY ("post_id") REFERENCES "post" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY ("cat_id") REFERENCES "cat" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);

amirali_bk
دوشنبه 10 دی 1397, 09:15 صبح
سلام .
ممنون از پاسختون .

یعنی باید برای یک مطلب که مثلا تو 6 تا دسته بخواد تیک بخوره باید 6 بار تو جدول واسط برای هر دسته ذخیره بشه ؟

amirali_bk
دوشنبه 10 دی 1397, 09:38 صبح
سلام .
ممنون از پاسختون .

یعنی باید برای یک مطلب که مثلا تو 6 تا دسته بخواد تیک بخوره باید 6 بار تو جدول واسط برای هر دسته ذخیره بشه ؟

peymang
دوشنبه 10 دی 1397, 11:48 صبح
سلام .
ممنون از پاسختون .

یعنی باید برای یک مطلب که مثلا تو 6 تا دسته بخواد تیک بخوره باید 6 بار تو جدول واسط برای هر دسته ذخیره بشه ؟


درسته، همینطوری میشه

amirali_bk
دوشنبه 10 دی 1397, 12:54 عصر
درسته، همینطوری میشه

مرسی داداش لطف کردی :قلب: