Есть вариант хранить как строку "1,2,3,4" и т.д .Но тогда SQL запросы не понятно как писать и вообще выглядит не правильно.
Поделитесь пожалуйста как это правильно реализовать в реляционной БД.
Если сделать "многие ко многим" ,то получится что мне надо 100 записей в бд для 10 id'шников, как-то не правильно это все. может другой вариант есть, который я упустил?
Вы немного неправильно задали вопрос.
Нет описания бизнес процесса, есть магический ряд чисел и ваше видение как с ним работать.
Ваша программа что то делает с данными, вот и храните как строку, а обработку делайте в программе.
Владимир Коротенко, Есть сущность Server с полями : id, ip, port, supportPlatformIds
, где supportSystemId - это foreign ключ к таблице "Platforms".
Один сервер может работать на разных платформах, то есть поддерживать их. В программе в какой-то момент определяется id платформы и нужно найти сервер, который поддерживает эту платформу.
public class StoreContact
{
public Guid StoreId { get; set; }
public Store Store { get; set; }
public Guid ContactId { get; set; }
public Contact Contact { get; set; }
public string Password { get; set; }
}
-- Table: public.store_contacts
-- DROP TABLE IF EXISTS public.store_contacts;
CREATE TABLE IF NOT EXISTS public.store_contacts
(
"StoreId" uuid NOT NULL,
"ContactId" uuid NOT NULL,
"Password" text COLLATE pg_catalog."default",
CONSTRAINT "PK_store_contacts" PRIMARY KEY ("ContactId", "StoreId"),
CONSTRAINT "FK_store_contacts_contacts_ContactId" FOREIGN KEY ("ContactId")
REFERENCES public.contacts ("Id") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE RESTRICT,
CONSTRAINT "FK_store_contacts_stors_StoreId" FOREIGN KEY ("StoreId")
REFERENCES public.stors ("Id") MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE RESTRICT
)
TABLESPACE pg_default;
ALTER TABLE IF EXISTS public.store_contacts
OWNER to eggcloud;
-- Index: IX_store_contacts_StoreId
-- DROP INDEX IF EXISTS public."IX_store_contacts_StoreId";
CREATE INDEX IF NOT EXISTS "IX_store_contacts_StoreId"
ON public.store_contacts USING btree
("StoreId" ASC NULLS LAST)
TABLESPACE pg_default;