Stockage de plusieurs ID employé dans une colonne de données
-
09-09-2019 - |
Question
application Web est en cours d'écriture en ASP classique avec une base de données MSSQL. Sur cette page particulière, l'administrateur peut choisir 1 ou tout / tous les employés d'attribuer le projet. J'essaie de trouver un moyen simple de stocker les ID des employés des personnes qui lui sont assignées dans une colonne.
La liste des employés est générée à partir d'une autre table et peut être dynamique (mise à feu ou location) donc je veux que le programme soit suffisamment souple pour changer en fonction de ces changements de table.
En gros besoin de savoir comment assigner plusieurs personnes à un projet qui peut ensuite être appelé sur une page différen ou d'une autre requête.
Désolé pour la question n00bish, mais merci!
La solution
Vous devez créer une autre table qui stocke ces valeurs telles que. Donc, cette nouvelle table stockerait une ligne pour chaque ID, et le lien puis de nouveau à l'enregistrement original avec l'ID de documents originaux.
Autres conseils
Ne pas stocker dans une colonne! de multiples ID Créer une autre table avec la clé primaire de votre table existante et un seul ID que vous souhaitez stocker. Vous pouvez ensuite insérer plusieurs lignes dans cette nouvelle table, la création d'un 1: m relation (un à plusieurs). Par exemple, regardons un tableau de commande:
order:
order_id
order_date
et j'ai une table de produits ...
product:
product_id
product_name
Maintenant, vous pouvez aller sur la route d'ajouter une colonne à l'ordre qui vous permettent de lister les produits dans l'ordre, mais ce serait une mauvaise forme. Qu'est-ce que vous voulez à la place est quelque chose comme ..
order_item:
order_item_id
order_id
product_id
quantity
unit_price
Vous pouvez ensuite effectuer une jointure pour obtenir tous les produits pour un ordre particulier ...
select
product.*
from orders
inner join order_item on order_item.order_id = order.order_id
inner join product on product.product_id = order_item.product_id
where orders.order_id = 5
Voici un exemple order_id 5, et cela obtenir tous les produits dans cet ordre.