๊ฐœ๋ฐœ ์ผ์ง€ ๐Ÿ’ป/Nutri Capture

Nutri Capture ๋ฐฑ์—”๋“œ - ERD

interfacer_han 2023. 12. 22. 13:26

#1 ERD

ํ•„์ˆ˜์ ์ธ ํ…Œ์ด๋ธ”๋งŒ ๋งŒ๋“ค์—ˆ๋‹ค. ๋‚˜์ค‘์— ํ…Œ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•ด ๋„ฃ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์•„์ฃผ ๋†’๊ธฐ์—, ๋ชจ๋“  ํ…Œ์ด๋ธ”์„ Non-Identifying Relationship์œผ๋กœ ์—ฐ๊ฒฐํ–ˆ๋‹ค. ๊ฐ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๊ธฐ๋ณธํ‚ค๋Š” AUTOINCREMENT๊ฐ€ Default๊ฐ’์ด๋‹ค. nutrient ํ…Œ์ด๋ธ”์€ 100g ๋‹น ํ•จ์œ ๋œ ์˜์–‘์†Œ๊ฐ€ ๊ธฐ์ค€์ด๋‹ค. nutrient ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค f_num๋Š” UNIQUE KEY์ด๊ณ , ์™ธ๋ž˜ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด์ธ ON CASCADE DELETE์„ ๋‹ฌ์•„๋‘์—ˆ๋‹ค.

 

#2 ์ฝ”๋“œ - SQLite

CREATE TABLE user ( -- ์‚ฌ์šฉ์ž
    u_num   INTEGER PRIMARY KEY AUTOINCREMENT, -- ์‚ฌ์šฉ์ž ๋ฒˆํ˜ธ
    u_name  TEXT, -- ๋‹‰๋„ค์ž„
    u_sex   TEXT NOT NULL DEFAULT 'n', -- ์„ฑ๋ณ„
    u_height REAL, -- ํ‚ค
    u_weight REAL -- ๋ชธ๋ฌด๊ฒŒ
);

CREATE TABLE food ( -- ์Œ์‹
    f_num           INTEGER PRIMARY KEY AUTOINCREMENT, -- ์Œ์‹ ๋ฒˆํ˜ธ
    u_num           INTEGER NOT NULL, -- ์‚ฌ์šฉ์ž ๋ฒˆํ˜ธ (์™ธ๋ž˜ํ‚ค)
    c_num           INTEGER NOT NULL, -- ์Œ์‹ ์นดํ…Œ๊ณ ๋ฆฌ (์™ธ๋ž˜ํ‚ค)
    f_name          TEXT NOT NULL DEFAULT '์ด๋ฆ„ ์—†์Œ', -- ์Œ์‹ ์ด๋ฆ„
    f_time          TEXT NOT NULL DEFAULT (datetime('now','localtime')), -- ๋“ฑ๋กํ•œ ์‹œ๊ฐ
    f_total_amount  REAL, -- ์Œ์‹์˜ ์ด ์ค‘๋Ÿ‰ (g)
    f_percent       REAL NOT NULL DEFAULT 100, -- ์Œ์‹์„ ์–ผ๋งˆ๋‚˜ ๋จน์—ˆ๋Š”์ง€์˜ ํผ์„ผํŠธ (%)
    FOREIGN KEY (u_num) REFERENCES user(u_num),
    FOREIGN KEY (c_num) REFERENCES category(c_num)
);

CREATE TABLE category ( -- ์Œ์‹ ์นดํ…Œ๊ณ ๋ฆฌ
    c_num          INTEGER PRIMARY KEY AUTOINCREMENT, -- ์Œ์‹ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฒˆํ˜ธ
    c_name_level_1 TEXT NOT NULL, -- ์Œ์‹ 1์ฐจ ๋ถ„๋ฅ˜
    c_name_level_2 TEXT NOT NULL -- ์Œ์‹ 2์ฐจ ๋ถ„๋ฅ˜
);

CREATE TABLE nutrient ( -- 100g ๋‹น ์˜์–‘์†Œ
    n_num           INTEGER PRIMARY KEY AUTOINCREMENT, -- ์˜์–‘์†Œ ๋ฒˆํ˜ธ
    f_num           INTEGER UNIQUE NOT NULL, -- ์Œ์‹ ๋ฒˆํ˜ธ (์™ธ๋ž˜ํ‚ค)
    n_calories      REAL, -- ์บ๋กœ๋ฆฌ (kcal)
    n_sodium        REAL, -- ๋‚˜ํŠธ๋ฅจ (mg)
    n_carbohydrate  REAL, -- ํƒ„์ˆ˜ํ™”๋ฌผ (g)
    n_sugars        REAL, -- ๋‹น๋ฅ˜ (g)
    n_total_fat     REAL, -- ์ง€๋ฐฉ (g)
    n_trans_fat     REAL, -- ํŠธ๋žœ์Šค์ง€๋ฐฉ (g)
    n_saturated_fat REAL, -- ํƒ„์ˆ˜ํ™”๋ฌผ (g)
    n_cholesterol   REAL, -- ์ฝœ๋ ˆ์Šคํ…Œ๋กค (mg)
    n_protein       REAL, -- ๋‹จ๋ฐฑ์งˆ (g)
    FOREIGN KEY (f_num) REFERENCES food(f_num) ON DELETE CASCADE
);