ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: tae861 ที่ 18 กุมภาพันธ์ 2019, 06:22:23



หัวข้อ: ช่วยออกแบบ database ให้ผมหน่อยครับ คิดไม่ออก
เริ่มหัวข้อโดย: tae861 ที่ 18 กุมภาพันธ์ 2019, 06:22:23
คือผมจะทำระบบ สมาชิก มีหลายระดับแยกตามไปครับ

รูปแบบจะประมาณนี้ครับ
ก็ admin >> สร้าง Master A >> Master A สร้าง Agent B >>  Agent B สร้าง User C , User D
ก็คือว่าง่ายๆ
ผมจะทำเช็คยังไงให้ว่า Agent B อยู่สายเดียวกับ Master A
แล้วเช็คยังไงถ้า Agent B ทำการ สร้าง User A B C D ลงไปอีก User A B C D ของ Agent B จะยังอยู่ในสายของ Agent B แะล Master A ตามลำดับครับ

ปล.admin สร้าง master ได้ไม่จำกัด
master สร้าง agent ได้ไม่จำกัด และ สร้าง User ได้ไม่จำกัด
agent ไม่สามารถสร้าง master ได้ และ สร้าง user ได้ไม่จำกัด

มันเหมือนกับต้นไม้อะครับ หรือมองพวก ธุระกิจขายตรงก็ได้ครับ ผมจะทำให้มันเชื่อมกันได้ยังไง :wanwan012:
เหมือนจะคิดออกแต่ก็คิดไม่ออก


หัวข้อ: Re: ช่วยออกแบบ database ให้ผมหน่อยครับ คิดไม่ออก
เริ่มหัวข้อโดย: devnow ที่ 18 กุมภาพันธ์ 2019, 09:02:00

น่าจะออกมาประมาณนี้นะครับ

หาคนที่สร้าง โดยการ where createdby (เก็บ userid)
หา root ว่าสายเดียวกันไหมจาก rootUser (เก็บ userid)

(https://www.roop.xyz/images/2019/02/17/table.png)


หัวข้อ: Re: ช่วยออกแบบ database ให้ผมหน่อยครับ คิดไม่ออก
เริ่มหัวข้อโดย: goodwide ที่ 18 กุมภาพันธ์ 2019, 10:18:50
table -- customer

cmid = PK
cmcode
name
groupid
typeid
directorid
parentid  ****  เอาไป วน หาสมาชิกเอา...ไม่ยากครับ
-------------------
select cm.*,cm1.* from  customer  cm
left join  customer cm1 on cm1.cmid = cm.parentid   

ลองดูนะครับ


หัวข้อ: Re: ช่วยออกแบบ database ให้ผมหน่อยครับ คิดไม่ออก
เริ่มหัวข้อโดย: dekdoo ที่ 18 กุมภาพันธ์ 2019, 12:52:46
ผมแนะให้ลองคิดเองดูก่อนนะ
ต่อให้ออกแบบ database ให้ท่านก็คงยังไม่เข้าใจ database ตัวนั้น

ยกตัวอย่างแบบนี้
Table A มีฟิวส์
- aid
- name

Table B (aid อ้างอิงกับ aid ของ Table A)
- bid
- aid
- name

Table C (bid อ้างอิงกับ bid ของ Table B)
- cid
- bid
- name

ก็อารมณ์เหมือนเราสร้างหมวดสินค้าไงครับ หมวดหลัก -> หมวดย่อย -> ย่อยอีกที
โดยจะมีฟิวส์อันหนึงเชื่อมโยงกัน เพื่อบ่งบอกถึงกันและกัน

ส่วนใครจะสร้างอะไร ภายใต้ใคร อันนั้นก็อยู่ที่เงื่อนไขโปรแกรม


หัวข้อ: Re: ช่วยออกแบบ database ให้ผมหน่อยครับ คิดไม่ออก
เริ่มหัวข้อโดย: gilbert ที่ 21 กุมภาพันธ์ 2019, 22:41:13
table -- customer

cmid = PK
cmcode
name
groupid
typeid
directorid
parentid  ****  เอาไป วน หาสมาชิกเอา...ไม่ยากครับ
-------------------
select cm.*,cm1.* from  customer  cm
left join  customer cm1 on cm1.cmid = cm.parentid   

ลองดูนะครับ

ถ้าเป็นลักษณะ N โหนด แบบนี้จะยืดหยุ่นสุดครับ แค่บอกว่าพ่อแม่ (parent) คือใคร


หัวข้อ: Re: ช่วยออกแบบ database ให้ผมหน่อยครับ คิดไม่ออก
เริ่มหัวข้อโดย: patom ที่ 21 กุมภาพันธ์ 2019, 22:54:36
อ่านแล้วมีประโยชน์ขอบคุณมากครับ